AotucCrawler 快速爬取圖片

蟲師發表於2021-11-25

AotucCrawler 快速爬取圖片

今天介紹一款自動化爬取圖片專案。

GitHub: https://github.com/YoongiKim/AutoCrawler

Google, Naver multiprocess image web crawler (Selenium)

關鍵字

  • 爬蟲網站:Google、Naver (美、韓兩大搜尋引擎)
  • 執行方式:Multiprocess(多程式)
  • 爬取格式:image (圖片)
  • 基於自動化工具:Selenium (不解釋)

如何使用

  1. Git克隆AutoCrawler專案到本地

  2. 自行安裝 Chrome 瀏覽器

  3. 安裝依賴

> pip -r requirements.txt
  • certifi: 包含了很多可信任知名公司的證照/公鑰。
  • chardet:提供自動檢測字元編碼的功能。
  • idna: 提供"對於RFC5891中定義的IDNA協議(Internationalised Domain Names in Applications)的支援"。
  • requests: 依賴於上面三個基礎庫,他主要用於根據圖片連結下載圖片。
  • selenium: 用於啟動瀏覽器,爬取圖片連結。
  • webdriver-manager: 用來管理selenium瀏覽器驅動的專案。

仔細分析別人專案,不管是原始碼還是依賴庫都會有收穫。webdriver-manager 就是我發現的一個寶藏專案,它簡化的瀏覽器驅動的管理。

  1. 開啟keywords.txt檔案,編寫爬取的關鍵字。
cat
dog
  1. 執行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

  1. 爬取的圖片儲存於 downloads/ 目錄。

小結

  1. 因為使用的是Google網站,沒有梯子的同學有點鬱悶。專案本身並不複雜,兩個python檔案加一起不到1000行程式碼,我們完全可以花點時間替換為國內可訪問的搜尋引擎。

  2. 下載圖片只是為了欣賞貓貓狗狗嗎?當然不是,我們可用下載的圖片訓練 AI。

相關文章