Python 3.x 仅在某些网站上使用python3时出现Web垃圾处理错误
此代码适用于谷歌和雅虎等网站,返回“good”Python 3.x 仅在某些网站上使用python3时出现Web垃圾处理错误,python-3.x,web-scraping,Python 3.x,Web Scraping,此代码适用于谷歌和雅虎等网站,返回“good” import urllib.request as ur #url="http://www.evga.com" #url="http://www.asus.com/us/" url="http://www.google.com" import urllib.error as ure try: conn = ur.urlopen(url) except ure.HTTPError a
import urllib.request as ur
#url="http://www.evga.com"
#url="http://www.asus.com/us/"
url="http://www.google.com"
import urllib.error as ure
try:
conn = ur.urlopen(url)
except ure.HTTPError as e:
# Return code error (e.g. 404, 501, ...)
# ...
print('HTTPError: {}'.format(e.code))
except ure.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
# ...
print('URLError: {}'.format(e.reason))
else:
# 200
# ...
print('good')
但对于asus,给出了错误403,而对于EVGA,则根本没有给出响应。
如何解决此问题?您遇到了一个典型的标题问题。urllib不是最好的主意,因为您将有很多实现问题。相信我,这真是一团糟 对于网页抓取,我建议使用
请求
或selenium
。第一个是一个良好的开端
让我来分享你的请求
版本的代码
import requests
url="http://www.evga.com"
#url="http://www.asus.com/us/"
#url="http://www.google.com"
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko Chrome/83.0.4103.97 Safari/537.36"}
r = requests.get(url, headers=headers)
print(r.status_code)
收益率:
200
我注意到”http://www.evga.com“
是个麻烦制造者,但使用标题可以控制一切
有关请求的更多信息:谢谢。有趣的是,有些页面重定向了请求,但仍然给出了200。试试url=“我想我必须弄清楚如何知道我是否被重定向。还有一个问题,看看硒。虽然这需要更多的资源,但可以帮助进行一步一步的刮除。