如何優雅的「輪帶逛」初級篇——獲取單張圖片

更多圖片欣賞:如何優雅的「輪帶逛」初級篇——獲取單張圖片

首先上收藏夾 輪子哥帶我逛知乎 - 收藏夾 - 知乎

由@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點~

---------------------------------------------------------------------------------------------------------------------------

百度雲下載

鏈接:pan.baidu.com/s/1dFOPbU 密碼:abrl

推薦文章

Crossin 給伸手黨的福利:Python 新手引導給伸手黨的福利:Python 新手引導 - 知乎專欄

很不錯,好好學習

推薦閱讀:

揣著Django做項目2:組隊

TAG:Python | vczh知乎用户 | 爬虫计算机网络 |