urllib2.HTTPError: HTTP Error 403: Forbidden的解決方案
阿新 • • 發佈:2019-02-02
在使用python爬取網路爬蟲時,經常會以為目標網站因為禁止爬取網路爬蟲而出現403 Forbidden的錯誤
問:為什麼會出現403 Forbidden的錯誤
答:出現urllib2.HTTPError: HTTP Error 403: Forbidden錯誤的原因主要是由於目標網站禁止爬蟲導致的,可以在請求加上請求頭資訊.
問:那麼應該如何解決呢?
答:只要模擬正常瀏覽器上網即可,比如新增一個headers
req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl)
html = urlopen(req)
在req中新增一個headers,使其變為
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl, headers=headers)
# req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl)
html = urlopen(req)
問:headers如何查詢?
答:可以利用在瀏覽器開發者工具中的網路查詢,比如火狐瀏覽器
問:偽裝成瀏覽器還會不會出現其他問題?
答:會,比如目標網站會封掉查詢次數過多ip地址