基于Python的網(wǎng)絡(luò)爬蟲在物流信息追蹤中的應(yīng)用
【文章頁數(shù)】:4 頁
【部分圖文】:
圖1宅急送鏈接請求頭
鑒于許多網(wǎng)站(如上述的DHL和宅急送)都采取了一些“反爬蟲”措施以防止腳本工具自動(dòng)登錄網(wǎng)頁,故而在利用Python執(zhí)行頁面訪問代碼前,應(yīng)先修改“請求頭”(RequestHeaders)使網(wǎng)絡(luò)爬蟲更像人類用戶[2]。以宅急送為例,右鍵查詢頁面進(jìn)入瀏覽器“審查元素”(Inspect....
圖3宅急送表單源代碼
XHR全稱XMLHttpRequest,是一個(gè)用以實(shí)現(xiàn)AJAX功能的JavaScript應(yīng)用程序接口(API)。過濾出DHL運(yùn)單狀態(tài)頁面Network選項(xiàng)卡的XHR類,可發(fā)現(xiàn)另一個(gè)包含運(yùn)單號的路徑。通過requests模塊的get函數(shù)獲得其響應(yīng)對象后,再調(diào)用json方法解碼即可返....
圖4運(yùn)單號源代碼
將圖3源代碼的子項(xiàng)展開后,可知網(wǎng)頁表單中應(yīng)包含運(yùn)單號和驗(yàn)證碼兩個(gè)參數(shù)。其中,運(yùn)單號部分代碼如圖4所示。示例代碼中的“名稱”(name)決定了表單變量名,即在模擬表單提交行為時(shí),運(yùn)單號變量名稱應(yīng)為orderNos。同理,根據(jù)圖5所示代碼,驗(yàn)證碼變量名則是captcha。
圖6驗(yàn)證碼示例
上述程序首先調(diào)用會話對象的get方法可獲取宅急送網(wǎng)站為表單提供的驗(yàn)證碼圖片響應(yīng)對象,再通過io庫的BytesIO函數(shù)將該對象內(nèi)容轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),最后使用PIL模塊的Image.open函數(shù)打開驗(yàn)證碼,如圖6所示。對于人類而言,能夠十分容易地認(rèn)出圖中字符,但計(jì)算機(jī)卻很難直接理解這....
本文編號:3924960
本文鏈接:http://sikaile.net/guanlilunwen/wuliuguanlilunwen/3924960.html