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


初識Scrapycss

  • 開發環境python

  • 建立項目nginx

  • 建立爬蟲chrome

  • 項目結構圖瀏覽器

  • 建立Item微信

  • 分析HTMLapp

  • 爬取網頁scrapy


開發環境

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


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

「去哪兒」:http://bnb.qunar.com/hotcity.jsp

建立項目

scrapy startproject qunar


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

建立爬蟲

cd qunarscrapy 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的點點滴滴;

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

本文分享自微信公衆號 - Python爬蟲數據分析挖掘(zyzx3344)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索