基於Scrapy架構的python網路爬蟲(1)__python

來源:互聯網
上載者:User
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.