如何優雅的「輪帶逛」初級篇——獲取單張圖片
更多圖片欣賞:如何優雅的「輪帶逛」初級篇——獲取單張圖片
首先上收藏夾 輪子哥帶我逛知乎 - 收藏夾 - 知乎由@vega13創建,內容挺多的。例如,
寫了一個簡單爬取圖片的程序。記錄下過程。手動 @輪子哥
1、分析網頁
收藏夾只收藏了問題的一個答案,初步想法是獲取當前頁面的圖片
因為上一次原因,直接去網頁源代碼
<img src="//i1.wp.com/pic4.zhimg.com/de5ecb16bcb912e99a83f647eb96c5bb_200x112.jpg" data-rawwidth_="1080" data-rawheight="1080" class="origin_image inline-img zh-lightbox-thumb" src="//i1.wp.com/pic4.zhimg.com/de5ecb16bcb912e99a83f647eb96c5bb_r.jpg">n
<img data-rawwidth_="1280" data-rawheight="1836" src="//i1.wp.com/pic2.zhimg.com/v2-61ba67d910104f99acdb805a3568ab05_200x112.jpg" class="origin_image inline-img zh-lightbox-thumb" src="//i1.wp.com/pic2.zhimg.com/v2-61ba67d910104f99acdb805a3568ab05_r.jpg">n
在<img>標籤下,src和data-original都含有圖片鏈接,經驗證data-original是大圖,那就把每個問題的圖片鏈接找到了,接下來就很簡單了。
2、代碼
就18行的代碼。簡單吧~
import requests,urllibnfrom lxml import etreenndef get_img(url):ntheaders = {User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36}ntr= requests.get(url,headers=headers).textnts = etree.HTML(r)nt#print(r)ntlink = s.xpath(//img/@data-original)ntfor i in link:nttprint(i)nttname = i.split(/)[-1]#圖片名稱n urllib.request.urlretrieve(i,name)nnif __name__ == __main__:ntfor i in range(1,43):ntturl = https://www.zhihu.com/collection/78172986?page= + str(i)nttget_img(url)n
但是這樣存在一個問題
link = s.xpath(//img/@data-original)n
這裡的link只有每個回答的第一張圖片,更多的圖片藏在文本中,除了正則不知道還有沒有更好的辦法
只有200多張圖片。結尾有百度雲
下載了幾分鐘出現錯誤,有一張圖片下載不了,知友們有什麼好辦法嗎?
三、「輪帶逛」高級篇
既然有初級篇,肯定還有高級篇。
其實這個收藏夾中每一個問題下面都含有很多回答,收藏夾只是選取其中一個,也就是被輪子哥點贊的那個,那麼還有那些沒有被點贊的呢?
下一期講一講怎麼獲取所有圖片鏈接。
放一張圖片,卡死我程序的
知乎看片指日可待
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------最後的小廣告-------------------------------------------------------
有朋友竟然叫我去作一期直播,講一講Python。
打算根據自己的經歷分享一些經驗,主要是關於Python入門的,想聽聽可以私信我。
時間是周二晚9點~
---------------------------------------------------------------------------------------------------------------------------
百度雲下載
鏈接:http://pan.baidu.com/s/1dFOPbUx 密碼:abrl
推薦文章
Crossin 給伸手黨的福利:Python 新手引導給伸手黨的福利:Python 新手引導 - 知乎專欄
很不錯,好好學習
推薦閱讀: