我正在尝试抓取以下页面: http://usbcdirectory.com/listing/1-us-black-chambers
我正在使用python 3.5.0
这是我的代码:
urllib.request.urlopen('http://usbcdirectory.com/listing/1-us-black-chambers')
使用上面我发现404找不到错误。但是,当我从浏览器打开时,页面存在。
我尝试在这个问题上搜索解决方案,在这里我找到了:
1)将urllib更改为请求:我已经执行了此操作,状态代码中出现404错误
>>>requests.get('http://usbcdirectory.com/listing/1-us-black-chambers')
Request <404>
2)我检查了我的链接是否正确
3)我试图找到是否使用javascript生成页面。我相信不是。
这里的网页有什么问题?他们是否以某种方式阻止抓取,或者这是网址的问题?
答案 0 :(得分:3)
正如您猜测的那样,他们可能会阻止您的请求。您可以传递自定义标头来模拟您的请求,就像来自真实浏览器的请求一样:
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)