urllib的基本用法
urllib庫的基本組成
利用最簡單的urlopen方法爬取網(wǎng)頁html
利用Request方法構(gòu)建headers模擬瀏覽器操作
error的異常操作
urllib庫除了以上基礎(chǔ)的用法外,還有很多高級的功能,可以更加靈活的適用在爬蟲應(yīng)用中,比如:
使用HTTP的POST請求方法向服務(wù)器提交數(shù)據(jù)實(shí)現(xiàn)用戶登錄
使用代理IP解決防止反爬
設(shè)置超時(shí)提高爬蟲效率
解析URL的方法
本次將會對這些內(nèi)容進(jìn)行詳細(xì)的分析和講解。
POST請求
POST是HTTP協(xié)議的請求方法之一,也是比較常用到的一種方法,用于向服務(wù)器提交數(shù)據(jù)。博主先介紹進(jìn)行post請求的一些準(zhǔn)備工作,然后舉一個(gè)例子,對其使用以及更深層概念進(jìn)行詳細(xì)的的剖析。
POST請求的準(zhǔn)備工作
既然要提交信息給服務(wù)器,我們就需要知道信息往哪填,填什么,填寫格式是什么?帶這些問題,我們往下看。
同樣提交用戶登錄信息(用戶名和密碼),不同網(wǎng)站可能需要的東西不一樣,比如淘寶反爬機(jī)制較復(fù)雜,會有其它一大串的額外信息。這里,我們以豆瓣為例(相對簡單),目標(biāo)是弄清楚POST是如何使用的,復(fù)雜內(nèi)容會在后續(xù)實(shí)戰(zhàn)部分與大家繼續(xù)分享。
拋出上面像淘寶一樣需要的復(fù)雜信息,如果僅考慮用戶名和密碼的話,我們的準(zhǔn)備工作其實(shí)就是要弄明白用戶名和密碼標(biāo)簽的屬性name是什么,以下兩種方法可以實(shí)現(xiàn)。
瀏覽器F12查看element獲取
也可以通過抓包工具Fiddler獲取。
廢話不多說了,讓我們看看到底如何找到name?
1. 瀏覽器F12
通過瀏覽器F12元素逐層查看到(我是用的Chrome),郵箱/手機(jī)號標(biāo)簽的name="form_email", 密碼的標(biāo)簽name="form_email",如下圖紅框所示。

但要說明的是,兩個(gè)標(biāo)簽的name名稱并不是固定的,上面查看的name名稱只是豆瓣網(wǎng)站定義的,不代表所有。其它的網(wǎng)站可能有會有不同的名稱,比如name="username", name="password"之類的。因此,針對不同網(wǎng)站的登錄,需要每次查看name是什么。
2. 通過fiddler抓包工具

博主推薦使用fiddler工具,非常好用。爬蟲本身就是模擬瀏覽器工作,我們只需要知道瀏覽器是怎么工作的就可以了。
fiddler會幫助我們抓取瀏覽器POST請求的所有內(nèi)容,這樣我們得到了瀏覽器POST的信息,把它填到爬蟲程序里模擬瀏覽器操作就OK了。另外,也可以通過fiddler抓到瀏覽器請求的headers,非常方便。
安裝fiddler的小伙伴們注意:fiddler證書問題的坑(無法抓取HTTPs包),可以通過Tools —> Options —>HTTPS里面打勾Decrypt HTTPS traffic修改證書來解決。否則會一直顯示抓取 Tunnel 信息包...
| 
 
 | 
新聞熱點(diǎn)
疑難解答
圖片精選