您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python異步加載怎么爬取圖片”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python異步加載怎么爬取圖片”吧!
何為異步加載?
想理解異步加載技術,先要知道傳統的網頁是如何加載的,首先,傳統的網頁更新內容需要對整個頁面進行刷新更新,資源浪費較大,但是現在常用的異步加載技術(AJAX:JavaScript和XML)指的就是一種交互式網頁應用技術,如沒有翻頁,一致下滑可以不斷更新網頁部分數據信息,同時當前網頁基礎框架和網址等信息都不變指的就是異步加載技術,大大的節約了網絡資源。
還有一種判斷是否使用了異步加載的方法,就是通過查看數據是否在網頁源代碼中。
使用了異步加載的網頁后,網頁中的內容在HTML中是找不到文本信息的,這時候通過常規三大爬取庫是抓不到信息的,因此需要逆向去尋找推導出來網頁是如何加載數據的過程,這個過程就叫做逆向工程。
如何實現逆向工程?
以Pexels網站為例,我們來看一下如何實現逆向工程:
打卡Chrome瀏覽器對應Pexels網站,右鍵檢查,打開網頁源代碼,選擇Network選項卡。
繼續手動下滑網頁,會發現XHR文件在不斷加載更新,通過上圖紅框可以發現在固定變化的URL
https://www.pexels.com/search/book/?format=js&seed=&page=2&type=
https://www.pexels.com/search/book/?format=js&seed=&page=3&type=
https://www.pexels.com/search/book/?format=js&seed=&page=4&type=
嘗試刪除上述URL中的部分,得到
https://www.pexels.com/search/book/? page=2發現也可以返回正常的網頁
這樣就逆向推導出來了真實的網頁URL,也知道了網頁的變化規律,可以開始進行數據爬取了。
由于Pexels圖片網站設置了比較嚴格的反扒機制,后續我們來講如何破解,我們用hippopx圖片網站來進行實踐練習,此網站也有大量精美免費無版權圖片,大家可嘗試看看。
詳細代碼如下:
import requestsfrom lxml import etreeimport osheaders={"accept": "xxxx","cookie": "xxxx","User-Agent": "xxxx","referer": "xxxx"}list=[]file='存儲路徑'url='https://www.hippopx.com/'html=requests.get(url,headers=headers)selector=etree.HTML(html.text)imgs=selector.xpath('//*[@id="flow"]/li/figure/a/img')for img in imgs: photo=img.get('src') list.append(photo)for item in list: print(item) data=requests.get(item,headers=headers) fp= open(file+'/'+item.split('/')[-1],'wb') fp.write(data.content) fp.close()
運行結果如下:
存儲圖片如下:
感謝各位的閱讀,以上就是“Python異步加載怎么爬取圖片”的內容了,經過本文的學習后,相信大家對Python異步加載怎么爬取圖片這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。