長話短說,最近真有點忙,現在才寫第一篇關于真正關于爬蟲的文章,本篇只是粗略講解如何爬取順豐官網展示的價格和時效。爬蟲按照網頁類型不同,可以分為靜態網頁爬蟲和動態網頁爬蟲。動態網頁的爬蟲大致可以分為三步:①分析請求;②代碼實現;③檢測反爬。代碼寫完無問題后,基本就可以做到批量爬取了。
一、爬蟲第一步,分析請求
打開瀏覽器,進入順豐速運官網,進入運費時效價格查詢界面,鼠標右鍵點擊后選擇檢查,進入開發者模式(筆者使用谷歌瀏覽器,不同瀏覽器殊途同歸),點擊network。如果對瀏覽器開發者模式不習慣,可以選擇使用fiddler進行抓包分析,教程網上一大堆,在這就不細講啦。
此時可以嘗試輸入始發地、目的地、重量、寄件時間后點擊查詢,如下圖所示,順豐官網向服務器發送的是城市代碼,重量和時間數據。
劃重點:核心點要知道向哪個網址發送請求,采取哪種方式(Get或Post),請求頭的內容,請求發送的數據,按上述說的五點,寫好代碼一般就能拿到數據了。但越來越多的網站已經開始在前臺利用JS代碼按照一定的加密規則生成一段密匙,照樣能爬,只不過需要看懂JS代碼,這個是后話。
AJAX請求,正常服務器返回的是JSON數據,可以看下Response中返回的JSON數據。
對JSON數據美化后的樣子是這樣滴。
可以很自豪的說:終于拿到順豐了順豐的時效價格數據。但這只是萬里長征第一步...
順豐官網爬蟲難度比較大的一點是城市代碼從哪來的???這里就不嗦了,就直接告訴大家答案。
劃重點:城市代碼的來源是點擊原寄地或目的地后,根據你的選擇,一步步向服務器發送請求得來的。大概的流程是選擇省并點擊-返回省下邊所有市及編碼-頁面拿到市數據并向用戶展示-用戶選擇市并點擊-返回市下邊所有的縣及其編碼。
二、代碼實現
寫代碼,真的要做好解決各種BUG的準備...有的時候,一個BUG能搞了一個小時,很絕望!
一般爬蟲經常使用到的庫主要有requests,pyquery,pandas,selenium等等等,庫很多,但都殊途同歸。直接上代碼,就不詳細展開講了。
三、測試反爬
一般主流的反爬機制有檢測IP短時間訪問次數、文字&字母驗證碼、圖片驗證碼、短信驗證碼等等,不同的驗證碼解決手段有較大差異。
劃重點:對應反爬的解決方式主要有以下方式
1.檢測IP:限定爬蟲頻率或定期更換高匿名IP;
2.文字&圖片驗證碼:一般需要利用機器學習;
3.圖片驗證碼(選擇圖片或滑動滑塊):一般利用專業三方機構提供的接口輔助驗證,即把后臺返回的圖片利用api發送給三方機構服務器后返回數據;
順豐反爬的手段相對簡單些,就是檢測IP短時間訪問量,訪問多了,就會被封IP。相應的解決方案也非常簡單,即生成一個0-1之間的隨機描述,讓程序沉睡下,就可以了。
不懂Python或爬蟲的,可能看不太懂。沒關系,一開始我也懵逼,只要有個積跬步至千里的信念和興趣...
來源|“京東服務+”洗衣中央工廠招商、3C上門安裝/維修招商
2353 閱讀嘉誠國際發布2024年年報:營收13.5億元,歸母凈利潤為2.05億元
2326 閱讀深圳擬擴大試點物流、環衛功能型無人車運營,加速產業規模化進程(附編制說明等下載)
2132 閱讀這家老牌物流巨頭被收購,9億美元交易值不值?
1575 閱讀DeepSeek落地全球第一大港
1298 閱讀京東外賣重點推廣39城
1267 閱讀國內首條無人機城際物流航線首航,1200公里續航會否沖擊貨運格局?
1213 閱讀京東,為外賣騎手繳納五險一金!
1132 閱讀普洛斯中國2024年表現穩健強勁,卓越運營助力新經濟勢能攀升
1128 閱讀物流行業唯一!京東物流入選《可持續發展年鑒2025》
1110 閱讀