項目簡介:本實驗經過使用 Python 實現一個淘寶女郎圖片收集爬蟲,學習並實踐 BeautifulSoup、Selenium Webdriver 及正則表達式等知識。html
本教程由阿treee發佈在實驗樓,完整教程及在線練習地址:Python3 實現淘女郎照片爬蟲,能夠直接在教程中下載代碼使用demo。python
本項目經過使用 Python 實現一個淘女郎圖片收集爬蟲,學習並實踐 BeautifulSoup、Selenium Webdriver 及正則表達式等知識。在項目開發過程當中採用瀑布流開發模型。正則表達式
本項目中將會學習並實踐如下知識點:編程
Python3 編程瀏覽器
使用 BeautifulSoup 解析 HTML 頁面cookie
使用 Selenium Webdriver 爬取 Web 頁面網絡
使用正則表達式提取所需的關鍵信息工具
首先咱們要爬取的目標頁面以下:學習
爬取後的目錄結構以下:測試
每一個目錄中都有一系列的圖片:
本節主要介紹和安裝項目中將用到的幾個基礎工具。本實驗使用實驗樓的環境開發,中間部分步驟在不一樣版本的 Linux 環境下會有不一樣。
首先,因爲使用的工具都須要經過 pip3 進行安裝,實驗樓的環境中沒有安裝 pip3,因此須要先將pip3準備好。
打開桌面上的 Xfce 終端,輸入下面的命令安裝 pip3:
sudo apt-get update sudo apt-get install python3-pip
BeautifulSoup
庫的名字取自劉易斯·卡羅爾在《愛麗絲夢遊仙境》裏的同名歌詞。就像故事中他在仙境中的說法同樣,BeautifulSoup
試圖化平淡爲神奇。它經過定位 HTML
標籤來去格式化和組織複雜的網絡信息,用簡單易用的 Python
對象爲咱們展示 XML 結構信息。
因爲此次實驗是在 python3.X
版本以上的因此,將拓展庫安裝到特定的庫中使用 pip3
,從而安裝到 python3
的系統目錄中,仍然是在實驗樓中的 Xfce 終端執行命令:
sudo pip3 install Beautifulsoup4
BeautifulSoup4
是現今的最新版本,也是接下來重點使用的工具。
Selenium 是一個強大的網絡數據採集工具,最初是爲網站自動化測試而開發的。近幾年,他還被普遍用於獲取精確的網站快照,由於他們能夠直接運行在瀏覽器上。Selenium
可讓瀏覽器自動加載頁面,獲取須要的數據,甚至頁面截屏,或者判斷網站上某些動做上是否發生。
Selenium
本身不帶瀏覽器,它須要與第三方瀏覽器結合在一塊兒使用。例如,能夠在實驗樓桌面上的 Firefox
瀏覽器上運行 Selenium
,能夠直接看到一個 FireFox
窗口被打開,進入網站,而後執行你在代碼中設置的動做。雖然使用 Firefox
瀏覽器看起來更清楚,但在本實驗中咱們採用 PhantomJS來代替真實的瀏覽器結合使用。
能夠經過 PyPI網站 下載Selenium庫,也能夠經過第三方管理器(像 pip3
)用命令行下載安裝:
sudo pip3 install selenium
測試是否都安裝成功:
一個 無頭
的瀏覽器,PhantomJS
會把網站加載到內存並執行頁面上的 JavaScript
,可是不會向用戶展現網頁的圖形化界面,能夠用來處理 cookie
、JavaScript
及 header
信息,以及任何你須要瀏覽器協助完成的事情。
PhantomJS
也能夠從他的 官方網站下載。由於 PhantomJS
是一個功能完善的瀏覽器,並不是一個 Python
庫,因此他不須要像 Python
的其餘庫同樣安裝,也不能用 pip
安裝。
實驗樓的環境是 Ubuntu,能夠經過 apt-get
進行安裝:
sudo apt-get install phantomjs
如今有不少頁面都是採用 Ajax 加載數據,咱們即將實驗的目標網址也是這樣的,若是咱們用傳統的方法採集樣的頁面,只能獲取加載前的頁面,而咱們真正須要的信息( Ajax 執行以後的頁面)卻抓不到,後續實驗中能夠看到效果的區別。
本項目的詳細教程、完整代碼及demo測試,可在實驗樓中查看並在線完成。
更多Python經典項目:Python所有-課程