【重写爬虫案例】百度图片、今日头条今日街拍爬取图片中遇到的问题
大家好,我是石璞東。
我們來記錄一個今天遇到的小問題:當我們想要通過爬蟲程序獲取百度圖片、今日頭條中的今日街拍中的圖片的時候,我們發現請求的url地址有點麻煩,請看具體分析:
-
百度圖片
我們在百度圖片搜索框中輸入關鍵詞鄭合惠子,然后打開瀏覽器開發者工具,選中Network選項卡,并勾選XHR復選框,我們重新刷新頁面,查看網頁的請求情況,請看截圖:
我們發現Request URL的值好復雜,其實不然,我們把這個值單獨截圖出來,方便大家看:
接著,我們在開發者工具中滑到最底部,找到Query String Parameters字段,部分截圖內容如下所示:
經過比對我們發現,其實Request URL所攜帶的參數中只有最后一個參數是變化的,其余參數都是固定的。 -
今日頭條今日街拍
我們再來看一下今日頭條今日街拍的情況,請看截圖:
我們在搜索框中搜索關鍵詞三里屯街拍,并按照百度圖片的分析思路打開選項卡,找到加載的ajax文件并查看其Request URL以及
Query String Parameters,截圖如下所示:
經過比對我們發現,今日街拍中的Request URL除了timestamp參數其余參數均是固定值,細心的小伙伴一定發現了,不管是在百度圖片中還是在今日頭條中,如果想要解決請求url中的麻煩,就是要解決那一串莫名其妙的13位數字,那這個數字到底是什么呢?
我們來打開一個工具:Unix時間戳(Unix timestamp)轉換工具,我們輸入對應的timestamp值發現其就是一個時間戳:
講到這里了,小伙伴是不是恍然大悟了,我們在構造請求參數的時候加上時間戳不就行了,請看代碼:
params = {"aid": "24","app_name": "web_search","offset": offset,"format": "json","keyword": "街拍三里屯","autoload": "true","count": "20","en_qc": 1,"cur_tab": 1,"from":"search_tab","pd": "synthesis","timestamp": round(time.time() * 1000),"_signature": "_02B4Z6wo00d014rd1mwAAIBDbSacgo6ow.eK2NLAAL17CtjAAP6o0xqnePBdF99y.hRaxZHZHSidb6myPI295UEM3v3-JohYrauBsypltSq0MEELINnpaRIYPo4e7tHeKNxhyChIFLUm9wPl41" }解決了請求參數的問題,我們來跑一下程序,看看能不能獲取到關于三里屯街拍的一些圖片信息:
我們發現程序正常運行了,等待程序跑完,我們來看一看最終跑下來的成果,請看截圖:
沒有問題,程序運行正常。
寫在最后
為方便讀者了解更為詳細的信息,我為小伙伴們提供了三個我的官方渠道:
- hahaCoder(微信公眾號)
- hahaAI(微信小程序)
- hahaWebsite. (個人網站)
總結
以上是生活随笔為你收集整理的【重写爬虫案例】百度图片、今日头条今日街拍爬取图片中遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Security OAut
- 下一篇: 试题 历届试题 对局匹配(动态规划)保证