寫部落格沒高質量配圖?python爬蟲教你繞過限制一鍵搜尋下載圖蟲創意圖片!
目錄
- 前言
- 分析
- 理想狀態
- 爬蟲實現
- 其他注意
- 效果與總結
@(文章目錄)
前言
在我們寫文章(部落格、公眾號、自媒體)
的時候,常常覺得自己的文章有些老土,這很大程度是因為配圖
沒有選好。
筆者也是遇到相同的情況,順便解決其中一個案例,給大家一些技術上的參考和借鑑!
並且,我們搜圖片如果去百度,會遇到兩種情況:非高清
或者帶水印
。這都是我們所忌諱的東西。筆者此次通過圖蟲創意抓起高清小圖,雖然不是大圖,但是在火熱的移動端閱讀上是足夠的!
分析
廢話說完了,我們開始分析怎麼樣才能獲取這樣的圖片呢。
理想狀態
- 我們的理想狀態就是一個網頁,我們的目標網頁,把圖片
<img src="xxxxxx">
直接放到html中。我們的爬蟲可以直接解析。這種情況,就像你寫的部落格,個人網站的圖片一樣,簡單嵌入。
或者就是通過後臺ajax傳輸圖片地址引用。我們
不清楚
是否這樣!實際分析
但事實這種肯定會被理想破滅,因為不可能!他以圖片為核心業務
,要你註冊,購買等等,怎麼可能就這麼容易
的嵌入進入被你找到。那它到底如何實現呢?我們分析一下!
首先開啟網頁,檢查圖片,發現它的網頁圖片來源不唯一。有兩個主要域名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然後下載圖片即可!
其他注意
圖片下載:
- 下載圖片有很多圖片無名稱或者名字相同,避免這個不下載要進行編號
- 兩個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 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
寫部落格之前言
關於這個問題,一直縈繞在我的心頭。其實在一個月前我就有了寫部落格的這個想法,可是一直到現在才得以實施。各中因素大多是因為想的太多,做的太少,然後就是拖延症晚期,反正就是各種藉口。唉~~ 然而生活還要繼續,知識還要積累,程式碼還要寫,一切都在進行著。我也不能一直猶豫不決是不,所以從今天