好久沒更新Python相關(guān)的內(nèi)容了,,這個專題主要說的是Python在爬蟲方面的應(yīng)用,包括爬取和處理部分 上節(jié)我們說了如何操作瀏覽器自動訂購12306火車票 [Python爬蟲]使用Python爬取靜態(tài)網(wǎng)頁-斗魚直播 [Python爬蟲]使用Python爬取動態(tài)網(wǎng)頁-豆瓣電影(JSON) [Python爬蟲]使用Python爬取動態(tài)網(wǎng)頁-騰訊動漫(Selenium) [Python爬蟲]使用Selenium操作瀏覽器訂購火車票 這節(jié)內(nèi)容為如何利用fiddler分析登陸過程并使用requests進行登陸,,之后領(lǐng)取下載豆 開發(fā)環(huán)境操作系統(tǒng):windows 10 Python版本 :3.6 爬取網(wǎng)頁模塊:requests 分析網(wǎng)頁工具:BeautifulSoup4,fiddler4 關(guān)于requestsrequests是一個第三方庫,,可以用來模擬瀏覽器請求,如get,post 它也有Session功能,,可以保持會話信息,,如cookie等,這個可以讓我們用來進行登陸后的操作 具體請參加官網(wǎng):
關(guān)于fiddler4fiddler4 是一個網(wǎng)頁分析的工具,,和自帶的開發(fā)者工具一樣,,不過其功能更為強大 我們可以通過官網(wǎng)免費下載并使用 官方網(wǎng)址
詳細教程查看如下網(wǎng)站
模塊安裝lxml為解析網(wǎng)頁所必需
1.分析過程1.1 登陸51cto并進行登陸請保持fiddle4 全程開啟狀態(tài) 1.2 使用Fiddler4 查找功能查找登陸頁面也可以直接使用快捷鍵Ctrl+F,我們這里查找用戶名bsbforever 注意這里需要勾選decode compressed content 之后可以看到界面左邊連接黃色高亮 1.3 查看請求網(wǎng)頁和header1.4 查看POST請求參數(shù)接下來我們雙擊該頁面從右側(cè)的WebForms查看POST參數(shù) 也可以查看raw標簽 從上面我們可以看出提交的信息有:
其他都很好知道其含義,,只有第一個我們不確定其含義 我們接下來重復(fù)登陸操作,,可以看到每次csrf值是不一樣的 這時我們需要找到該值是如何產(chǎn)生的 1.5 查看csrf值這里我們?nèi)匀皇褂盟阉鞴δ埽覀兯阉鱟srf的值 這時我們可以看到左側(cè)有2處標黃,,我們查看另外個頁面的響應(yīng) 可以看到該csrf值存在于為登陸前的頁面中 這時我們可以提取該值 1.6 POST模擬登陸接下來我們構(gòu)造header和post data 使用requests.post進行登陸 這時使用Session方法保持會話信息 1.7 登陸后領(lǐng)取下載豆這里根據(jù)抓取到的頁面進行POST請求 2. 登陸流程圖3. 代碼介紹3.1 import相關(guān)的模塊
3.2 新建requests會話 后續(xù)都使用s變量進行請求 s=requests.Session() 3.3 get首頁獲取csrf值
3.4 構(gòu)造header和data 3.5 post 登陸頁面
3.6 判斷是否登陸成功
3.7.領(lǐng)取下載豆 download=s.post('http://down.51cto.com/download.php?do=getfreecredits&t=0.8367867217711695').text 4.執(zhí)行結(jié)果:5.注意事項:
6.源碼位置 |
|