@(文章目錄)python
在咱們寫文章(博客、公衆號、自媒體)
的時候,經常以爲本身的文章有些老土,這很大程度是由於配圖
沒有選好。ajax
筆者也是遇到相同的狀況,順便解決其中一個案例,給你們一些技術上的參考和借鑑!算法
而且,咱們搜圖片若是去百度,會遇到兩種狀況:非高清
或者帶水印
。這都是咱們所忌諱的東西。筆者這次經過圖蟲創意抓起高清小圖,雖然不是大圖,可是在火熱的移動端閱讀上是足夠的!json
廢話說完了,咱們開始分析怎麼樣才能獲取這樣的圖片呢。cookie
<img src="xxxxxx">
直接放到html中。咱們的爬蟲能夠直接解析。這種狀況,就像你寫的博客,我的網站的圖片同樣,簡單嵌入。或者就是經過後臺ajax傳輸圖片地址引用。咱們不清楚
是否這樣!數據結構
以圖片爲核心業務
,要你註冊,購買等等,怎麼可能就這麼容易
的嵌入進入被你找到。那它到底如何實現呢?咱們分析一下!python爬蟲
首先打開網頁,檢查圖片,發現它的網頁圖片來源不惟一。有兩個主要域名ice
和wel
,而且後面的編號還不惟一,可是能夠嘗試發現相同域名不一樣後綴的圖片地址結果相同
!(例如icweiliimg9
和icweiliimg/
效果相同)。
咱們發現原來這個搜索url會變化,可是這個查看網頁源代碼發現並無咱們想要的圖片地址。那麼咱們確定知道它要麼從ajax渲染
,或者就藏在js中進行混淆或者加密
。咱們發現這個xhr中並無想要的數據,而且他其實藏在js中。其實這個能夠猜測到的,由於它的url既然跟着變化那麼返回的數據確定是有區別
的。學習
那麼分析就到這裏,剩下就是python爬蟲的模擬和解析了。測試
前面說到已經知道它的數據源,咱們用python編寫爬蟲須要進行模擬。通過測試發現它須要進行一些驗證,其中包過cookie
的wluuid
字段(只驗證存在,不驗證正確性)。
那麼咱們編寫一段代碼就能拿到網頁html。可是問題來了。數據藏在js裏面啊!!!
咱們只能用正則進行套了!
對於這個js,咱們經過js=soup.select('script') js=js[4]
便可獲取。
對於有用數據,只能正則截取。
pattern = re.compile(r'window.hits = (\[)(.*)(\])') va = pattern.search(str(js)).group(2)#解析js內容
可是這個相似json的串用,
拼接咱們沒法直接使用spilt分組分開,可是咱們能夠從}
所有替換成},,
那麼就三個,,,
咱們就能夠分割而不影響其餘json串內,
;split以後每組都知足json串格式
,直接轉成json取值便可!
那麼剩下拿到url直接構造url而後下載圖片便可!
圖片下載:
爬蟲方面
其餘
經過上述分析:編寫爬蟲:
測試結果:
打開文件夾:
發現nice!你只須要輸入關鍵詞便可實現自動下載,雖然是小圖,可是效果不錯!
移動端公衆號和csdn效果!
不難發現
,整個過程就是分析和處理字符串的邏輯難點。數據結構與算法紮實了處理問題都不難,!因此,若是要學習數據結構與算法,爬蟲請關注我吧!公衆號:bigsai