1. 程式人生 > >寫部落格沒高質量配圖?python爬蟲教你繞過限制一鍵搜尋下載圖蟲創意圖片!

寫部落格沒高質量配圖?python爬蟲教你繞過限制一鍵搜尋下載圖蟲創意圖片!

目錄

  • 前言
  • 分析
    • 理想狀態
    • 爬蟲實現
    • 其他注意
  • 效果與總結

@(文章目錄)

前言


在我們寫文章(部落格、公眾號、自媒體)的時候,常常覺得自己的文章有些老土,這很大程度是因為配圖沒有選好。

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

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

分析


廢話說完了,我們開始分析怎麼樣才能獲取這樣的圖片呢。

理想狀態

  • 我們的理想狀態就是一個網頁,我們的目標網頁,把圖片<img src="xxxxxx">直接放到html中。我們的爬蟲可以直接解析。這種情況,就像你寫的部落格,個人網站的圖片一樣,簡單嵌入。
  • 或者就是通過後臺ajax傳輸圖片地址引用。我們不清楚是否這樣!

    實際分析

    但事實這種肯定會被理想破滅,因為不可能!他以圖片為核心業務,要你註冊,購買等等,怎麼可能就這麼容易的嵌入進入被你找到。
  • 那它到底如何實現呢?我們分析一下!

首先開啟網頁,檢查圖片,發現它的網頁圖片來源不唯一。有兩個主要域名icewel,並且後面的編號還不唯一,但是可以嘗試發現相同域名不同字尾的圖片地址結果相同

!(例如icweiliimg9icweiliimg/效果相同)。

我們發現原來這個搜尋url會變化,但是這個檢視網頁原始碼發現並沒有我們想要的圖片地址。那麼我們肯定知道它要麼從ajax渲染,或者就藏在js中進行混淆或者加密。我們發現這個xhr中並沒有想要的資料,並且他其實藏在js中。其實這個可以猜想到的,因為它的url既然跟著變化那麼返回的資料肯定是有區別的。

那麼分析就到這裡,剩下就是python爬蟲的模擬和解析了。

爬蟲實現

前面說到已經知道它的資料來源,我們用python編寫爬蟲需要進行模擬。經過測試發現它需要進行一些驗證,其中包過cookiewluuid欄位(只驗證存在,不驗證正確性)。

那麼我們編寫一段程式碼就能拿到網頁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然後下載圖片即可!

其他注意

圖片下載:

  • 下載圖片有很多圖片無名稱或者名字相同,避免這個不下載要進行編號
  • 兩個url域名需要嘗試下載其中一個成功即完成下載!

爬蟲方面

  • 全程不需要登入,下載為高清小圖。後續可以考慮研究登入後的大圖分享給大家!

其他

  • 建立圖片路徑要考慮路徑是否存在!

效果與總結

通過上述分析:編寫爬蟲:

測試結果:

開啟資料夾:

發現nice!你只需要輸入關鍵詞即可實現自動下載,雖然是小圖,但是效果不錯!
移動端公眾號和csdn效果!

不難發現,整個過程就是分析和處理字串的邏輯難點。資料結構與演算法紮實了處理問題都不難,!所以,如果要學習資料結構與演算法,爬蟲請關注我吧!公眾號:bigsai

相關推薦

部落質量python爬蟲繞過限制搜尋下載創意圖片

目錄 前言 分析 理想狀態 爬蟲實現 其他注意 效果與總結 @(文章目錄) 前言 在我們寫文章(部落格、公眾號、自媒體)的時

POJ1562,Oil Deposits,dfs+bfs,這幾天有做東西,部落= =

Oil Deposits Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp wor

搭建自己的Chevereto免費床—部落更加得心應手了

[TOC] # Chevereto免費圖床搭建教程 | vps搭建免費圖床教程 本文首發於:[https://chens.life/How-to-build-a-free-image-bed.html](https://chens.life/How-to-build-a-free-image-bed.htm

部落,Typora+PicGo+阿里雲oss,最好用的Markdown+最好用的床工具

### 部落格 > ### 寫部落格的好處 **1.使自己變得更善於觀察**。一旦你養成了記部落格的習慣,與此同時你也賦予了一個更好的機會給自己,讓自己去更細緻地觀察生活。一個人的生活經歷本就是價值連城的,從中學習到的知識,教訓更是異常珍貴。放眼生活中那些正面的、負面的資訊,讓自己靜靜地去思考,

使用CSDN部落

**這個是我第一次用這個CSDN來寫部落格 ------希望大家可以支援 ** 我感覺從這裡應該學到很多 我學過c語言 學過java 都是寫皮毛 **很早之前就看過這個網站 ** **今天是1024 正好是一個好日子 ** 所以我也來嘗試著 去把自己學到的東西記下來 和大

使用open live writer客戶端部落(親測有效)

部落格都開了這麼久了,才開始將資料上傳,但是每次都要登入網頁確實很麻煩,所以就用open live writer,使用起來真的是挺方便的,所以將我在安裝配置時,發現的問題彙總起來以便日後再次碰到忘記怎麼處理了,哈哈,我記性不好 一:安裝      

使用markdown部落

目錄 使用markdown寫部落格 一、markdown介紹 二、在部落格園使用markdown編輯器 三、開始用markdown寫部落格 1.寫標題(用#號) 標題一 標題二 標題三

CSDN部落程式碼亮顯示

今天分享下在CSDN寫部落格的時候如何設定程式碼高亮 一、首先進入個人部落格介面: 三、設定選擇你的部落格標題、描述和想要的面板並選擇程式碼顯示格式 三、進入管理介面後進入部落格設定 那麼走到這裡,你肯定已經開始迫不及待的去實驗了,你在瞭解了Markdown

開博第一篇,為什麼部落

其實一直有寫部落格的想法,但是卻一直沒有開始,我相信有很多的人也跟我一樣,因為種種原因而將寫部落格給擱置了 自己明白那些東西就行,寫這個部落格能有什麼用呢; 怕自己寫出來的東西太簡單或者有錯讓別人嘲笑; 寫部落格是個費時費力的活,有那個時間和精力,為什麼不去多學些東西呢; 博主本人在結合

20172319 2018.10.19《Java程式設計教程》第7周課堂實踐(補部落

20172319 2018.10.19 《Java程式設計教程》第7周課堂實踐 課程:《程式設計與資料結構》 班級:1723 學生:唐才銘 學號:20172319 指導老師:王志強 日期:2018.10.19 必修/選修:必修 目錄 測試內容 測試要求

我們為什麼堅持部落,學習的另種方式

種種原因: 我們很多人都有過寫點東西的衝動,只是又因為種種原因沒有發表。 寫著寫著,擠不出字來了。 總感覺自己的內心想法表達不出來。 感覺寫了沒什麼用,自己都明白了幹嘛還要寫。 怕寫出來被人笑話

為什麼程式設計師要部落

作為一名計算機程式設計講師,在課程一開始,我就強調:“一定要做筆記,給自己申請一個部落格。” 理由如下: 一:整理思維、加強理解。 二:方便未來、回顧複習。 三、記錄成長。 四、鍛鍊寫作文字組織能力。 五、跟其他人反饋、互動,別人會發現一些你發現不了的問題,提升你的思維。

javascript 表格增刪改查 排序不會(第一次部落,求交流哈)

  學習JS快1個月了,博主本人上的是培訓的,快考試了,補習下學過的 發下今晚寫的吧。。。 有大神看看我的這種程度,排序事件怎麼弄~~ <!DOCTYPE html><html lang="zh"><head>    <

Word部落-使用Word2013釋出博文到部落

目前大部分的部落格作者在寫部落格這件事情上都會遇到以下3個痛點:1.所有部落格平臺關閉了文件釋出介面,使用者無法使用Word,Windows Live Writer等工具來發布部落格。2.釋出到部落格或公眾號平臺的圖片無法轉載。由於所有部落格平臺,公眾號平臺(如微信)開啟了圖片防盜鏈功能,作

在word上部落直接發到CSDN

目前大部分的部落格作者在寫部落格這件事情上都會遇到以下3個痛點:1.所有部落格平臺關閉了文件釋出介面,使用者無法使用Word,Windows Live Writer等工具來發布部落格。2.釋出到部落格或公眾號平臺的圖片無法轉載。由於所有部落格平臺,公眾號平臺(如微信)開啟了圖片防盜鏈功能,作

為什麼那麼多人執著於部落

為什麼寫部落格? 一直不明白,為什麼有那麼多的人喜歡寫部落格,把自己學到的知識或者看到的內容分享下來,不是說我有多麼的自私,害怕別人學的比我多,更多的原因來自於懶惰以及沒有良好的表達能力。 我也是最近才開始寫部落格的,以前也有想寫過,但是目的不純,哈哈哈,就想著能不能搞點粉絲啥的,就

Unity3d學習之路-Unity部落體會

Unity寫部落格體會 Unity寫部落格體會 為什麼要寫部落格 我的部落格七要素 附加

部落的思考

到今天為止,寫部落格大概也寫了半年多了吧。 這段時間我一直在想,究竟什麼才是真正有價值的東西。這半年以來,當我學習到一個新的技術技巧時,或是研究完一個底層原理,具體的某個演算法時,我就會把它給寫到我的部落格中,但我在想,在這個資訊過載的時代,這些東西很多都已經在網上被別人說爛了,有一些更是被轉載爛了。 在

作為一個程式設計師我為什麼要部落

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

部落之前言

關於這個問題,一直縈繞在我的心頭。其實在一個月前我就有了寫部落格的這個想法,可是一直到現在才得以實施。各中因素大多是因為想的太多,做的太少,然後就是拖延症晚期,反正就是各種藉口。唉~~ 然而生活還要繼續,知識還要積累,程式碼還要寫,一切都在進行著。我也不能一直猶豫不決是不,所以從今天