大家好,我是石璞東,
我們來記錄一個今天遇到的小問題:當我們想要通過爬蟲程式獲取百度圖片、今日頭條中的今日街拍中的圖片的時候,我們發現請求的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"
}
解決了請求引數的問題,我們來跑一下程式,看看能不能獲取到關于三里屯街拍的一些圖片資訊:

我們發現程式正常運行了,等待程式跑完,我們來看一看最終跑下來的成果,請看截圖:

沒有問題,程式運行正常,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/235452.html
標籤:其他
上一篇:Hadoop編程實踐
