1. 程式人生 > >urllib2.HTTPError: HTTP Error 403: Forbidden的解決方案

urllib2.HTTPError: HTTP Error 403: Forbidden的解決方案

在使用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地址