1、搭建環境
這裡我使用的是anaconda,anaconda裡面整合了很多關於python科學計算的第三方庫,主要是安裝方便,anaconda中內建Spyder。
這裡下載anaconda
比較推薦使用Python2.7
在anaconda下安裝Scrapy也很簡單。CMD進入命令列,直接輸入conda install scrapy,然後點“y”,很簡單就可以安裝成功。
這樣就搭建好了環境。 2、初步瞭解Scrapy
Scrapy官網教程,建議看看哦
首先應該解決的是如何建立一個新的scrapy項目 從命令列進入要建立新項目的目錄下,scrapy startproject newone
開啟目錄即可看到一個新的檔案夾,開啟檔案夾可以看到:
其中,items.py中的items作為載入所爬取資料的容器,它的結構像Python中的字典一樣。開啟你的items.py可以看到如下代碼:
name = scrapy.Field()就是一個典型的item,用來作為所爬取的name項的容器
class NewoneItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass
介紹了儲存爬取資料的容器,那麼怎麼爬取資料呢。在這之前我們需要一些XPath的知識
XPath教程
舉一些簡單的小例子來看一下XPath的用法: /html/head/title 選擇目錄HTML下head元素下的title元素 /html/head/title/text() 選擇title元素的常值內容 //td 選擇所有的td元素 //div[@class=”mine”] 選擇所有屬性class=”mine”的div元素
為了方便使用XPaths,Scrapy提供Selector 類,在Scrapy裡面,Selectors 有四種基礎的方法: xpath():返回一系列的selectors,每一個select表示一個xpath參數運算式選擇的節點 css():返回一系列的selectors,每一個select表示一個css參數運算式選擇的節點 extract():返回一個unicode字串,為選中的資料 re():返回一串一個unicode字串,為使用Regex抓取出來的內容
通過一個實際的例子更深刻的瞭解一下吧。
使用下面這個網站來作為樣本
http://www.dmoz.org/Computers/Programming/Languages/Python/Books/
使用shell爬取網頁來觀察XPath的功能
在命令列中輸入:
scrapy shell http://www.dmoz.org/Computers/Programming/Languages/Python/Books/
在Shell載入後,你將獲得response回應,儲存在本地變數 response中。
所以如果你輸入response.body,你將會看到response的body部分,也就是抓取到的頁面內容:
類似的可以輸入response.headers:
接下來觀察一下網頁:
我們來爬取Computers,Programming,Languages,Python這幾個元素,在瀏覽器上右鍵審查元素來觀察這段HTML代碼。
根據這段代碼寫出
sel.xpath('//a[@class="breadcrumb"]/text()').extract()
其中sel是selector對象
xpath很靈活,可以用不同的寫法得出相同結果。
接下來需要來寫實際爬取資料的代碼,我們可以通過實際例子來學習,敬請期待ing