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