python - 怎么用爬蟲批量抓取網(wǎng)頁中的圖片?
問題描述
如圖,通過network查看加載圖片,要一張一張右鍵保存很麻煩,有沒有辦法寫個爬蟲批量抓取這里的圖片》?
問題解答
回答1:這個需求, 如果你會爬蟲其實很簡單, 不外乎幾個步驟:
首頁或者有圖片的頁面, 通過正則或者其他框架, 獲取圖片的url
通過requests庫或者urllib庫, 訪問上面圖片url的地址
以二進制的形式, 寫入本地硬盤
參考代碼:
import re, requestsr = requests.get('http://...頁面地址..')p = re.compile(r’相應(yīng)的正則表達式匹配’)image = p.findall(r.text)[0] # 通過正則獲取所有圖片的urlir = requests.get(image) # 訪問圖片的地址sz = open(’logo.jpg’, ’wb’).write(ir.content) # 將其內(nèi)容寫入本地print(’logo.jpg’, sz,’bytes’)
更多詳情, 可以參考學習requests官方文檔: requests文檔
回答2:可以的,爬蟲五個部分:調(diào)度程序url去重下載器網(wǎng)頁解析數(shù)據(jù)存儲對于下載圖片的思路是:獲取圖片所在網(wǎng)頁內(nèi)容,解析img標簽,得到圖片地址,然后便利圖片網(wǎng)址,下載每張圖片,將下載過的圖片地址保存在布隆過濾器中,避免重復下載,每次下載一張圖片時,通過網(wǎng)址檢查是否下載過,當圖片下載到本地后,可以將圖片路徑保存在數(shù)據(jù)庫中,圖片文件保存在文件夾中,或者直接將圖片保存在數(shù)據(jù)庫中。python使用request+beautifulsoup4java使用jsoup
回答3:如果多個網(wǎng)站或者一個網(wǎng)站需要爬到很深的情況下,樓上的方式直接遞歸或者深度遍歷就OK
相關(guān)文章:
1. [python2]local variable referenced before assignment問題2. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?3. mysql - 如何在有自增id的情況下,讓其他某些字段能不重復插入4. python小白,關(guān)于函數(shù)問題5. django - Python error: [Errno 99] Cannot assign requested address6. angular.js - 百度支持_escaped_fragment_嗎?7. java - 線上應(yīng)用,如果數(shù)據(jù)庫操作失敗的話應(yīng)該如何處理?8. node.js - win 下 npm install 遇到了如下錯誤 會導致 無法 run dev么?9. python小白 關(guān)于類里面的方法獲取變量失敗的問題10. Python2中code.co_kwonlyargcount的等效寫法
