AotucCrawler 快速爬取圖片
今天介紹一款自動化爬取圖片專案。
GitHub: https://github.com/YoongiKim/AutoCrawler
Google, Naver multiprocess image web crawler (Selenium)
關鍵字
- 爬蟲網站:Google、Naver (美、韓兩大搜尋引擎)
- 執行方式:Multiprocess(多程式)
- 爬取格式:image (圖片)
- 基於自動化工具:Selenium (不解釋)
如何使用
-
Git克隆
AutoCrawler
專案到本地 -
自行安裝
Chrome
瀏覽器 -
安裝依賴
> pip -r requirements.txt
certifi
: 包含了很多可信任知名公司的證照/公鑰。chardet
:提供自動檢測字元編碼的功能。idna
: 提供"對於RFC5891中定義的IDNA協議(Internationalised Domain Names in Applications)的支援"。requests
: 依賴於上面三個基礎庫,他主要用於根據圖片連結下載圖片。selenium
: 用於啟動瀏覽器,爬取圖片連結。webdriver-manager
: 用來管理selenium瀏覽器驅動的專案。
仔細分析別人專案,不管是原始碼還是依賴庫都會有收穫。
webdriver-manager
就是我發現的一個寶藏專案,它簡化的瀏覽器驅動的管理。
- 開啟
keywords.txt
檔案,編寫爬取的關鍵字。
cat
dog
- 執行
main.py
檔案
> python main.py
引數說明:
--skip true
:如果下載的關鍵字已經存在,是否跳過關鍵字,重新下載時需要設定。
--threads 4
: 下載使用執行緒數量
--google true
: 從google.com
下載。
--naver true
: 從naver.com
下載。
--full false
: 下載全解析度影像而不是縮圖 (慢)。
--face false
: Face search mode。
--no_gui auto
: 使用 GUI 模式. (headless模式) 全解析度模式可以加速, 但是縮圖模式不穩定。 預設auto
模式,如果full=false
預設使用使用GUI,如果full=true
預設Headless模式。(可用於docker linux系統)。
--limit 0
: 設定最大圖片下載範圍。 (0: 無限制)
--proxy-list
: 逗號分隔的代理列表,如: socks://127.0.0.1:1080, http://127.0.0.1:1081
,每個執行緒從列表中隨即選擇一個。
例如:
> python main.py --threads 2 --google true --naver false --full false --limit 50
- 爬取的圖片儲存於
downloads/
目錄。
小結
-
因為使用的是Google網站,沒有梯子的同學有點鬱悶。專案本身並不複雜,兩個python檔案加一起不到1000行程式碼,我們完全可以花點時間替換為國內可訪問的搜尋引擎。
-
下載圖片只是為了欣賞貓貓狗狗嗎?當然不是,我們可用下載的圖片訓練 AI。