1. 程式人生 > >python 爬蟲 url error : HTTP 403 Forbidden

python 爬蟲 url error : HTTP 403 Forbidden

之後又寫了一篇使用代理的筆記 點選開啟連結

--------------

用Python爬取QQ空間內容的時候, 一開始的程式,不知道怎麼回事,執行緒應該也不是問題,頻繁出現 Http  403 Forbidden ,在提交請求

get 或者post 的時候,也都加了headers ,不過還是大量丟擲403 異常;

後來發現用火狐的firebug 檢視訪問的url時候,發現就算是瀏覽器直接訪問,抓包工具上也是顯示403錯誤,然後於是用谷歌瀏覽器自帶的抓包工具結果正常訪問 返回200 , 就覺得可能是headers的問題,

一開始設定的headers的火狐的:

headers={
		'User-Agent'  :'MMozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0'
		}
然後用谷歌的headers:
headers={
		'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'
		}
都改了之後,在執行發現403消失了!

雖然太清楚原因,但是也算是一種解決方法吧。

對用Python 做爬蟲時候HTTP 403 錯誤,總結一下吧:

1, 首先是偽裝成瀏覽器訪問 加入headers。 headers裡面最主要的內容就是User-Agent, 這個可以通過瀏覽器的抓包工具獲取

2, 如果仍然403 Forbidden, 那就在嘗試在headers內容裡面加入   Host項:如下:

headers={
			'Host':'ptlogin2.qq.com',
			'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'
		}
3,問題仍然不行的話, 換一個headers,其他的headers都可以通過不同瀏覽器的開發者工具得到
最好的方法就是把常用的各種headers寫到一個表裡面就行,一個不行換另一個,或者隨機使用一個也可以。

另外附上一些uses_agents:

 user_agents = [
                    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
                    'Opera/9.25 (Windows NT 5.1; U; en)',
                    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
                    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
                    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
                    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
                    "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",
                    "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",

                    ]