Scrapy爬蟲框架實戰案例(適合小白人門)


初識Scrapy

  • 開發環境

  • 創建項目

  • 創建爬蟲

  • 項目結構圖

  • 創建Item

  • 分析HTML

  • 爬取網頁

開發環境

運行平台:Windows 10 
Python版本:Python 3.6.1 
Scrapy版本:Scrapy 1.4.0 
IDE:Sublime text3 
瀏覽器:chrome


下面我們進入本文的主題,爬取我們的第一個網頁“去哪兒”的酒店城市列表,圖中紅色框框部門。 

“去哪兒”:http://bnb.qunar.com/hotcity.jsp

創建項目

scrapy startproject qunar


 紅框中是指出創建一個新爬蟲。

創建爬蟲

cd qunar
scrapy genspider hotel bnb.qunar.com


 自此,我們的項目算是基本創建好了,其中“hotel”是指爬蟲的名稱,“bnb.qunar.com”爬蟲的域名。不過為了方便我們項目啟動,可以在項目中新建一個entrypoint.py文件,文件內容如下: 

項目結構圖

創建Item

創建一個新的Item方便我們保存所爬取的數據,從爬取的頁面中可以看出,我們需要兩個數據就夠了,一個是城市名稱,另一個是城市對應的URL。 
下面我們就來創建保存這兩個數據Item: 
 
上面QunarItem是由scrapy自動生成出來的,我們暫時先不管它,如果你想直接用系統創建的那個Item也是可以的。我這里是自己新創建一個,看起來比較好管理。

分析HTML

按F12進入開發者工具,在按Ctrl + Shift + c 進入元素查找狀態,找到包裹我們要爬取內容的div,如圖下所示: 

 從圖中可以看出,A~Z分別在一個div中,所以我們只要解析出一個div那其他25個div也就解析出來了。然后,我們在從右側中一層一層點進去,找到第一個城市“阿壩”,如下圖所示: 

 通過對圖的觀察,可以發現,我們首先要找到包裹所以內容class=”b_allcity”的div,在從這個div中找到所有class=”e_city_list”的div,在從中找到所有“li”標簽中的“a”標簽,爬取“a”標簽中的文本及“href”屬性。

item我們已經創建好了,對HTML頁面也進行了分析,下面就可以進入主題了“爬蟲”,有點小激動。

爬取網頁

打開spiders中的hotel.py文件。這文件是系統幫我們創建的,系統幫我們創建了一下關鍵代碼。如圖 
 
下面我們只要對這么代碼稍稍改動一點,並寫出之前我們對HTML解析的代碼就好了。如圖: 

 本文中我使用的是“BeautifulSoup”來對HTML代碼進行解析的,如果有沒裝“BeautifulSoup”的小伙伴可以在命令窗口中直接安裝,安裝代碼:

pip install bs4

寫到這里,代碼就已經寫完了,下面我們就來運行起來看看效果如何。 
在命令窗口輸入:

python entrypoint.py

 
結果: 

 從圖中可以看出,我們要爬取的內容已經被我們爬取出來了。是不是覺得“so easy”呀!!!

正文結束!!!

歡迎關注公眾號:Python爬蟲數據分析挖掘,方便及時閱讀最新文章

記錄學習python的點點滴滴;

回復【開源源碼】免費獲取更多開源項目源碼;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM