天天看點

Scrapy架構-scrapy架構快速入門

1.安裝和文檔

安裝:通過pip install scrapy即可安裝。

Scrapy官方文檔:http://doc.scrapy.org/en/latest

Scrapy中文文檔:http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

注意事項:

2.快速入門

2.1 建立項目

要使用Scrapy架構建立項目,需要通過指令來建立。首先進入到你想把這個項目存放的目錄。

然後使用以下指令建立:scrapy startproject [項目名稱]

2.2 目錄結構介紹

Scrapy架構-scrapy架構快速入門

以下介紹下主要檔案的作用:

items.py:用來存放爬蟲爬取下來資料的模型。

middlewares.py:用來存放各種中間件的檔案。

pipelines.py:用來将items的模型存儲到本地磁盤中。

settings.py:本爬蟲的一些配置資訊(比如請求頭、多久發送一次請求、ip代理池等)。

scrapy.cfg:項目的配置檔案。

spiders包:以後所有的爬蟲,都是存放到這個裡面

3.使用Scrapy架構爬取糗事百科段子

3.1 使用指令建立一個爬蟲

Scrapy架構-scrapy架構快速入門

建立了一個名字叫做qsbk的爬蟲,并且能爬取的網頁隻會限制在qiushibaike.com這個域名下。

建立爬蟲後,再看下目錄結構變化

Scrapy架構-scrapy架構快速入門

3.2爬蟲代碼解析

其實這些代碼我們完全可以自己手動去寫,而不用指令。隻不過是不用指令,自己寫這些代碼比較麻煩。

要建立一個Spider,那麼必須自定義一個類,繼承自scrapy.Spider,然後在這個類中定義三個屬性和一個方法。

name:這個爬蟲的名字,名字必須是唯一的。

allow_domains:允許的域名。爬蟲隻會爬取這個域名下的網頁,其他不是這個域名下的網頁會被自動忽略。

start_urls:爬蟲從這個變量中的url開始。

parse:引擎會把下載下傳器下載下傳回來的資料扔給爬蟲解析,爬蟲再把資料傳給這個parse方法。這個是個固定的寫法。這個方法的作用有兩個,第一個是提取想要的資料。第二個是生成下一個請求的url。

3.3 修改settings.py代碼

在做一個爬蟲之前,一定要記得修改setttings.py中的設定。兩個地方是強烈建議設定的。

ROBOTSTXT_OBEY設定為False。預設是True。即遵守機器協定,那麼在爬蟲的時候,scrapy首先去找robots.txt檔案,如果沒有找到。則直接停止爬取。

DEFAULT_REQUEST_HEADERS添加User-Agent。這個也是告訴伺服器,我這個請求是一個正常的請求,不是一個爬蟲。

3.4 完成的爬蟲代碼

3.5 運作scrapy項目

運作scrapy項目。需要在終端,進入項目所在的路徑,然後scrapy crawl [爬蟲名字]即可運作指定的爬蟲。如果不想每次都在指令行中運作,那麼可以把這個指令寫在一個檔案中。以後就在pycharm中執行運作這個檔案就可以了。

比如現在新建立一個檔案叫做start.py,然後在這個檔案中填入以下代碼: