關於網路爬蟲(Web Crawler)是什麼,Jason 之前在【資源分享】Homemade CAPTCHA Image Dataset 這篇中有稍微介紹過了,這邊再重新提一下:網路爬蟲也叫做網路蜘蛛(Spider),是一種用來自動瀏覽全球資訊網(World Wide Web, WWW)的網路機器人,它主要的目的也就是到各個網站去抓資料。 其實我們一般使用者用瀏覽器(Browser)上網時,瀏覽器就是依據使用者建入的網址(URL)向對應的伺服器(Server)提出請求(request),如果該伺服器同意你的請求,就會對你的請求做出回應(response),即是把你請求網頁內容的原始碼傳回給你的瀏覽器,然後瀏覽器會再把原始碼轉換成人類可以看得懂的畫面顯示出來。 如果我們要從網站上下載一些資料,比如說:圖片。下載個一兩張可能還好,但是如果你今天是要下載來訓練神經網路用的,那你需要下載圖片的次數基本上是成千上萬,這麼大的工作量如果要你用人工來做,還不讓你嚇到吃手手。每當有需要大量重複執行的工作時,我們偉哉的程式設計(programming)技能自然就粉墨登場了!於是我們就可以讓小蜘蛛來代替我們去執行這一些重複性的工作。
接著我們來進入實作的部分,首先我們要準備好爬蟲的環境。
我們會用到 Selenium 這個套件,先使用 pip 指令來安裝:
Click here to edit.
或者你也可以用 conda 指令來安裝:
Click here to edit.
接下來我們會使用 Webdriver 讓程式可以代替我們來控制瀏覽器,對應不同瀏覽器(e.g. Chrome、Firefox、Safari)會有不同的 Webdriver,而我想絕大多數的人應該都是習慣用 Google Cheome 吧? 至少在統計面它的市占率是最高的,這邊我們也以 Chrome 來作為範例。
首先你需要先檢查你電腦裡面 Chrome 的版本,再依其版本去 [下載] 對應的 Webdriver。 至於如何查看 Chrome 版本,你可在瀏覽器中鍵入「chrome://settings/help」來查看。
在環境準備完成後,我們就可以來寫爬蟲程式了!
[Python] Using Selenium to Download a lot of Images
基本上你只要把上面的這段代碼複製下來【或者點此下載】,並把它跟前面下載的 Webdriver 放在同一個資料夾底下就可以了!如下圖所示:
使用的方法也很簡單,你先開啟 Command Line 然後進入該資料夾底下,接著運行:
python crawler.py -c【圖片的類別】 -n【下載的數量】
-c 參數後面放的是你要下載的類別,e.g. dog、cat、mountain、vehicle...
-n 參數後面填的是數量,想要下載100張就填100、想要下載2000張就填2000 運行的過程如下方影片所示: 另外補充一點,因為本篇是使用 XPath 來定位抓取網頁中的元件,倘若哪天 Google Image Search 的前端有改版使得 DOM Tree 長的不一樣了,那程式可能就沒有辦法正常的去爬圖片了,屆時只要針對程式碼中 xpath 的部分做對應的修正就好了。 Ok,那今天這篇就寫到這邊,感謝您的收看,我們下一篇再見。
0 評論
發表回覆。 |
Jason Chen人不光是生來就擁有一切,而是靠他從學習中得到的一切來造就自己。- 歌德 文章分類
全部
封存檔
九月 2023
|