May*_*tal 3 web-scraping python-3.x
我正在尝试抓取以下页面: http://usbcdirectory.com/listing/1-us-black-chambers
我正在使用Python 3.5.0
这是我的代码:
urllib.request.urlopen('http://usbcdirectory.com/listing/1-us-black-chambers')
Run Code Online (Sandbox Code Playgroud)
使用上面的内容我收到 404 未找到错误。但是,当我从浏览器打开该页面时,该页面存在。
我尝试寻找这个问题的解决方案,这是我发现的:
>>>requests.get('http://usbcdirectory.com/listing/1-us-black-chambers')
Request <404>
Run Code Online (Sandbox Code Playgroud)
我检查了我的链接是正确的
我试图查明该页面是否是使用 JavaScript 生成的。我相信事实并非如此。
这里的网页有什么问题吗?他们是否以某种方式阻止抓取,或者是 URL 的问题?
正如您所猜测的,他们可能会阻止您的请求。您可以传递自定义标头来模拟您的请求,就像来自真实浏览器的请求一样:
import requests
url = 'http://usbcdirectory.com/listing/1-us-black-chambers'
headers = {'Accept': 'text/html'}
response = requests.get(url, headers=headers)
print(response.status_code)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5233 次 |
| 最近记录: |