python3抓取異步百度瀑布流動態圖片(一)查找post並偽裝頭方法


打開流程:

用火狐打開百度圖片-->打開firebug-->輸入GIF圖-->搜索-->點擊網絡-->全部

觀察頁面:

首先要觀察的對象是“域”,圖片的json一般是放在主要的“域”里面的,任何網站的主要的“域”就是自身,即百度圖片的網址image.baidu.com,根據這個“域”我們再去查找URL。

查找方式:

點開“+”號,開打json,觀察里面的json的圖片網址:

隨便點開一個“data”得到一個圖片網址:

 

在瀏覽器新的窗口里面打開這張圖片看看是不是出現在百度圖片里面的圖片,圖片打開時這個樣子:

 

返回百度圖片里面去查找:

發現也在百度圖片里面,那么這個url就是我們要找到的json了,返回去點擊復制網址和參數下面的東西出來:

 在txt里面觀察:

繼續觀察url,url包含了一大堆的參數,每一個&都固定了一個參數:

http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=gif&oq=gif&rsp=-1

從頭到尾看,tn、ipn、ct...

這些在參數里面都有顯示,那么我們構造的網址就是:

http://image.baidu.com/search/index?tn...&ipn...&ct...&.....&.....

再去觀察百度哪里是用get方式的,所以我們的python也應該用get方式:

有些網址使用post的,那種方式在以后再去說

---------------------------------------我是快樂的分割線-----------------------------------------

url搞定,那么需要破解它的瀑布流。

瀏覽器往下拉,給百度圖片加載下一個部分的url出來,下面這個是第二部分的url:

 

按照上面的方法觀察json里面的data,得到的圖片:

百度圖片原文里面觀察:

也是找到了這張圖片,那么老規矩復制url和參數出來觀察:

http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=gif&oq=gif&rsp=-1

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=90&rn=30&gsm=5a&1472362006630=
1472361986418

URL不相同???

繼續往下翻!!!

http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=gif&oq=gif&rsp=-1

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=90&rn=30&gsm=5a&1472362006630=
1472361986418

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=150&rn=30&gsm=96&1472363883056=

后面兩個網址有規律了,觀察之...

看到沒,pn!!!!!

一個pn是90一個是150,呵呵噠終於找到了,那么就要找到這個頁數的規律。

刷新瀏覽器,直接翻到第11頁:

然后把加載出來的那個特定的url全部復制到txt里面觀察,下面我放了部分出來:

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=30&rn=30&gsm=1e&1472364207674=

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=90&rn=30&gsm=5a&1472364212829=

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=150&rn=30&gsm=96&1472364217002=

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=210&rn=30&gsm=d2&1472364220585=

http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=gif&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=gif&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=270&rn=30&gsm=10e&1472364223842=

看到這里還要我多說明么:

pn=30
pn=90
pn=150
pn=210
pn=270

搞定了url,到時候寫個for i in range(...),太強大,到這里構造的post就完成了

----------------------------------------------我是快樂的分割線--------------------------------------------------

偽裝頭部是很重要的,要防止被反爬蟲、反反盜鏈等等,那么頭部就是:

referer是反反盜鏈,ua是反爬蟲,host是主鏈,這三個最重要,筆者曾經偷懶只寫了ua,被反反盜鏈害死,得到的圖片為:

假如你們抓到這樣的圖那么說明失敗,第一篇幅搞定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM