Web Scraping:页面存在,但使用requests / urllib获取404

时间:2017-10-20 06:14:12

标签: python-3.x web-scraping

我正在尝试抓取以下页面: 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生成页面。我相信不是。

这里的网页有什么问题?他们是否以某种方式阻止抓取,或者这是网址的问题?

1 个答案:

答案 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)
相关问题