您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用Python爬取某圖網的圖片”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
相信很多設計小伙伴有好的靈感,但是沒有好的設計素材,今天它來了。攝圖網4000張設計素材,取之不盡,如下圖所示:
好了,廢話不多說,開始用Python采集。
采集攝圖網的素材圖片,目標網址-->請求數據-->解析數據-->提取數據-->保存數據。
首先我們用到的技術包括:urllib,requests,bs4等。
打開網址:https://699pic.com/paihang/tupian.html,分析網頁結構,我們可以看到首頁圖片數據雜論,這里我們爬取的是"今日熱門"的圖片,點擊發現更多:來到目標頁面,拖動滾輪滑到底部,發現有40個分頁,也就是我們今天要爬取的4000張設計圖片:
接著對列表中的每一條url進行遍歷,然后發起請求:
for url in urllist: resp = requests.get(url,headers=hd) html = resp.content.decode('utf-8')
得到了一個html對象,爬取頁面數據信息后,需要對頁面進行解析,這里我使用到的解析庫是bs4(偏愛),當然xpath也是可以的。通過分析頁面元素,我們發現每個翻頁里面的圖片都有這樣的規律:
因此可以通過bs4的select方法抓取所有class='lazy'的img標簽,得到一個列表,然后通過測試發現圖片的鏈接存放在img標簽的data-original屬性里,通過img.attrs['data-original']得到,再與'https:'進行字符串拼接,得到完整圖片鏈接。
for img in imgs: img_url = img.attrs['data-original'] total_url = base_http_str + img_url print(total_url) # print('--'*60) imgurllist.append(total_url)
最后運用urllib中的urlretrive方法,把圖片保存到本地。
def writeData(imgurllist): for index,url in enumerate(imgurllist): urllib.request.urlretrieve(url,'image/'+ '%s.png'%index) print('第%s張圖片下載完成'%index)
運行爬蟲代碼,效果如下:
圖片就下載完成了,不過運用傳統方法有點慢,下次試試多線程,提升爬蟲效率。
“怎么用Python爬取某圖網的圖片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。