<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      目錄

      * 前言 <https://www.cnblogs.com/bigsai/p/11438619.html#前言>
      * 分析 <https://www.cnblogs.com/bigsai/p/11438619.html#分析>
      * 理想狀態(tài) <https://www.cnblogs.com/bigsai/p/11438619.html#理想狀態(tài)>
      * 爬蟲(chóng)實(shí)現(xiàn) <https://www.cnblogs.com/bigsai/p/11438619.html#爬蟲(chóng)實(shí)現(xiàn)>
      * 其他注意 <https://www.cnblogs.com/bigsai/p/11438619.html#其他注意>
      * 效果與總結(jié) <https://www.cnblogs.com/bigsai/p/11438619.html#效果與總結(jié)>
      @(文章目錄)

      前言


      在我們寫(xiě)文章(博客、公眾號(hào)、自媒體)的時(shí)候,常常覺(jué)得自己的文章有些老土,這很大程度是因?yàn)榕鋱D沒(méi)有選好。

      筆者也是遇到相同的情況,順便解決其中一個(gè)案例,給大家一些技術(shù)上的參考和借鑒!

      并且,我們搜圖片如果去百度,會(huì)遇到兩種情況:非高清或者帶水印。這都是我們所忌諱的東西。筆者此次通過(guò)圖蟲(chóng)創(chuàng)意抓起高清小圖,雖然不是大圖,
      但是在火熱的移動(dòng)端閱讀上是足夠的!

      分析


      廢話說(shuō)完了,我們開(kāi)始分析怎么樣才能獲取這樣的圖片呢。

      理想狀態(tài)

      * 我們的理想狀態(tài)就是一個(gè)網(wǎng)頁(yè),我們的目標(biāo)網(wǎng)頁(yè),把圖片<img src="xxxxxx">直接放到html中。我們的爬蟲(chóng)可以直接解析。這種情況,
      就像你寫(xiě)的博客,個(gè)人網(wǎng)站的圖片一樣,簡(jiǎn)單嵌入。

      *
      或者就是通過(guò)后臺(tái)ajax傳輸圖片地址引用。我們不清楚是否這樣!

      實(shí)際分析
      但事實(shí)這種肯定會(huì)被理想破滅,因?yàn)椴豢赡?!他以圖片為核心業(yè)務(wù),要你注冊(cè),購(gòu)買等等,怎么可能就這么容易的嵌入進(jìn)入被你找到。
      *
      那它到底如何實(shí)現(xiàn)呢?我們分析一下!

      首先打開(kāi)網(wǎng)頁(yè),檢查圖片,發(fā)現(xiàn)它的網(wǎng)頁(yè)圖片來(lái)源不唯一。有兩個(gè)主要域名ice和wel,并且后面的編號(hào)還不唯一,但是可以嘗試發(fā)現(xiàn)相同域名不同后綴的圖片地址結(jié)果相同
      ?。ɡ鏸cweiliimg9和icweiliimg/效果相同)。

      我們發(fā)現(xiàn)原來(lái)這個(gè)搜索url會(huì)變化,但是這個(gè)查看網(wǎng)頁(yè)源代碼發(fā)現(xiàn)并沒(méi)有我們想要的圖片地址。那么我們肯定知道它要么從ajax渲染,或者就藏在js中進(jìn)行混淆或者加密
      。我們發(fā)現(xiàn)這個(gè)xhr中并沒(méi)有想要的數(shù)據(jù),并且他其實(shí)藏在js中。其實(shí)這個(gè)可以猜想到的,因?yàn)樗膗rl既然跟著變化那么返回的數(shù)據(jù)肯定是有區(qū)別的。

      那么分析就到這里,剩下就是python爬蟲(chóng)的模擬和解析了。

      爬蟲(chóng)實(shí)現(xiàn)

      前面說(shuō)到已經(jīng)知道它的數(shù)據(jù)源,我們用python編寫(xiě)爬蟲(chóng)需要進(jìn)行模擬。經(jīng)過(guò)測(cè)試發(fā)現(xiàn)它需要進(jìn)行一些驗(yàn)證,其中包過(guò)cookie的wluuid
      字段(只驗(yàn)證存在,不驗(yàn)證正確性)。

      那么我們編寫(xiě)一段代碼就能拿到網(wǎng)頁(yè)html。但是問(wèn)題來(lái)了。數(shù)據(jù)藏在js里面啊?。?!

      我們只能用正則進(jìn)行套了!
      對(duì)于這個(gè)js,我們通過(guò)js=soup.select('script') js=js[4]即可獲取。

      對(duì)于有用數(shù)據(jù),只能正則截取。
      pattern = re.compile(r'window.hits = (\[)(.*)(\])') va =
      pattern.search(str(js)).group(2)#解析js內(nèi)容
      但是這個(gè)類似json的串用,拼接我們無(wú)法直接使用spilt分組分開(kāi),但是我們可以從}全部替換成},,那么就三個(gè),,,我們就可以分割而不影響其他json串內(nèi),
      ;split之后每組都滿足json串格式,直接轉(zhuǎn)成json取值即可!

      那么剩下拿到url直接構(gòu)造url然后下載圖片即可!

      其他注意

      圖片下載:

      * 下載圖片有很多圖片無(wú)名稱或者名字相同,避免這個(gè)不下載要進(jìn)行編號(hào)
      * 兩個(gè)url域名需要嘗試下載其中一個(gè)成功即完成下載!
      爬蟲(chóng)方面

      * 全程不需要登錄,下載為高清小圖。后續(xù)可以考慮研究登錄后的大圖分享給大家!
      其他

      * 創(chuàng)建圖片路徑要考慮路徑是否存在!
      效果與總結(jié)

      通過(guò)上述分析:編寫(xiě)爬蟲(chóng):



      測(cè)試結(jié)果:


      打開(kāi)文件夾:

      發(fā)現(xiàn)nice!你只需要輸入關(guān)鍵詞即可實(shí)現(xiàn)自動(dòng)下載,雖然是小圖,但是效果不錯(cuò)!
      移動(dòng)端公眾號(hào)和csdn效果!


      不難發(fā)現(xiàn),整個(gè)過(guò)程就是分析和處理字符串的邏輯難點(diǎn)。數(shù)據(jù)結(jié)構(gòu)與算法扎實(shí)了處理問(wèn)題都不難,!所以,如果要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,爬蟲(chóng)請(qǐng)關(guān)注我吧!公眾號(hào):bigsai

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問(wèn)題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          国产黄色视频在线播放 | 久草99 | 无码免费成人 | 欧美日逼大战 | 初高中女同学裸体无遮挡图片 | 操欧美熟女 | 新婚白嫩饱满的双乳浑圆 | 大伊香蕉视频 | 国产图区 | 污污视频免费看 |