本文目錄一覽:
- 1、Python爬蟲之Header
- 2、python爬蟲錯誤提示
- 3、全方面的掌握Requests庫的使用【python爬蟲入門進階】(02)
- 4、python 爬蟲時,urllib2.HTTPError:HTTP Error 502:Bad Gateway是什麼原因?怎麼解決?
- 5、請教各位,python編寫爬蟲,返回http error 521怎麼解決
Python爬蟲之Header
HTTP 「請求頭信息」 Request Header 是向服務端提供客戶端的信息,「響應頭信息」 Response Header 是服務端向客戶端提供請求文檔信息或伺服器的狀態信息,服務端判斷服務端的身份,就是通過 Header 來判斷的,所以爬蟲通過設置 Header 來隱藏自己相當重要。
一個完整的HTTP請求包含以下部分:
請求方法 URL HTTP版本
請求頭信息
請求數據
一個空行,請求的結束行
常見的請求頭:
Accept :客戶端接收的數據類型,如:Accept:text/html
User Agent :客戶端軟體類型
Authorization :認證消息,包括用戶名和口令
Referer :用戶獲取的Web頁面
真實的請求頭信息會更多,下面是豆瓣某短評的真實請求頭:
一個完整的HTTP響應包含以下部分:
狀態行
響應頭
響應數據
常見的狀態行:
更多狀態碼查看: HTTP狀態碼
常見的響應頭:
Server :Web伺服器程序的信息
Date :當前伺服器的日期和時間
Last Modified :請求文檔最近一次修改的時間
Expires :請求文檔過期時間
Content-length :數據長度(位元組)
Content-type :數據MIME類型
WWW-authenticate :用於通知客戶方需要的認證信息,如用戶名,口令等
下面是豆瓣某短評的真實響應頭:
Python使用Requests來請求的時候,如果沒有設置Header,Header是空的,設置Header的方法如下:
python爬蟲錯誤提示
你這個url裡面的單引號用的有問題呀,如果用單引號那外圍就用雙引號,裡面套單引號,或者不用,你這都用單引號,應該會報錯的。
全方面的掌握Requests庫的使用【python爬蟲入門進階】(02)
上一篇文章簡單的介紹了 爬蟲相關的基礎知識點,介紹了一個標準爬蟲程序的三個步驟 。這篇文章就讓我們接著來學習。
本文重點介紹requests庫的使用以及爬蟲協議。之前也寫了一篇 Requests庫使用的博客 ,有興趣的小夥伴可以去看看。
前面介紹了Requests庫是用來抓取網頁源碼,請求介面的利器,整體上是要比urllib庫的request更加好用的庫。官網上將其稱之為唯一一個非轉基因的Python HTTP庫,人類可以安全享用。
Requests庫有7個主要方法。
不過我們平常最常用的方法還是GET方法和POST方法。
get請求方法是爬蟲中最常用到的方法,因為爬蟲主要就是爬取網頁的信息。最基礎的使用是
這裡需要通過 res.encoding=’utf-8′ 設置響應結果的編碼格式是utf-8。不然可能會出現中文亂碼
如果響應結果是二進位數據的話則需要通過 res.content 方法來提取響應結果。
設置編碼的方式也可以是 res.content.decode(‘utf-8’) 。
即
有時候get請求也需要傳入參數,這裡可以直接將參數拼接到URL上或者通過params參數傳入一個字典。
運行結果是:
get請求只能傳入簡單的參數,如果參數比較複雜或者傳入的參數比較多的話則GET請求就不再適用了,這時候就需要適用post請求方法了。
Post請求的請求類型有三種:
以表單的方式提交數據是POST請求的默認的請求格式,只需要將參數放在一個字典中進行傳入即可。
這裡將請求頭的數據放在一個名為header的字典中,然後在請求時通過headers參數傳入。在請求中設置了內容類型是 application/json ,編碼格式是 charset=utf-8
傳入的是一個json字元串,通過data參數進行傳入。json字元串可以直接寫也可以通過 json.dumps(dict) 方法將一個字典序列化,就像下面這樣。
文件上傳與本節爬蟲的內容無關,在此就不過多介紹了。有興趣的小夥伴可以看看 Python中如何編寫介面,以及如何請求外部介面 這篇文章。
在網路請求中,我們常常會遇到狀態碼是3開頭的重定向問題,在Requests中是默認開啟允許重定向的,即遇到重定向時,會自動繼續訪問。通過將allow_redirects 屬性設置為False不允許重定向。
通過timeout屬性可以設置超時時間,單位是秒。get方法和post方法均可設置。
通過status_code屬性可以獲取介面的響應碼。
有時候我們使用了抓包工具,這時候由於抓包證書提供的證書並不是受信任的數字證書頒發機構頒發的,所以證書的驗證會失敗,所以我們就需要關閉證書驗證。在請求的時候把verify參數設置為False就可以關閉證書驗證了。
爬蟲協議也叫做robots協議,告訴網路蜘蛛哪些頁面可以爬取,哪些頁面不能爬取
爬蟲文件的規範是:
允許所有的機器人
本文詳細介紹了Request庫的使用
python 爬蟲時,urllib2.HTTPError:HTTP Error 502:Bad Gateway是什麼原因?怎麼解決?
可能是那個網站阻止了這類的訪問,只要在請求中加上偽裝成瀏覽器的header就可以了,比如:
headers = {
‘User-Agent’:’Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6′
}
req = urllib2.Request(
url = “”
,
headers = headers
)
myResponse = urllib2.urlopen(req)
請教各位,python編寫爬蟲,返回http error 521怎麼解決
有些網站使用了Cookie,如果你沒有進行處理,伺服器當然就不認咯。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288969.html