1. 程式人生 > >python爬蟲(四):scrapy 【1. 快速上手】

python爬蟲(四):scrapy 【1. 快速上手】

中文文件:http://www.scrapyd.cn/doc/

 

Scrapy是採用Python開發的一個快速、高層次的螢幕抓取和web抓取框架。

什麼是爬蟲框架?

爬蟲框架是實現爬蟲功能的一個軟體結構和功能元件集合。

爬蟲框架是一個半成品,能夠幫助使用者實現專業網路爬蟲。

應用Scrapy爬蟲框架主要是編寫配置型程式碼

 

Scrapy也是第三方庫,需要安裝

anaconda安裝scrapy:conda install scrapy

安裝完可以用 conda list 檢視

 

scrapy常用命令 說明 格式

startproject 建立一個新工程 scrapy startproject <name> [dir]

genspider 建立一個爬蟲 scrapy genspider [options] <name> <domain>

crawl 執行一個爬蟲 scrapy crawl <spider>

settings 獲得爬蟲配置資訊 scrapy settings [options]

list 列出工程中所有爬蟲 scrapy list

shell 啟動URL除錯命令列 scrapy shell [url]

 

 

新建專案,在D:\pycharm\workspace目錄:

scrapy startproject scrapy_demo

 

 

生成一個叫demo的爬蟲:

cd sciapy_demo

scrapy genspider demo xxx

xxx 是模板中 start_urls 和 allowed_domains 的值

allowed_domains的含義是過濾爬取的域名,不在此範圍內的域名就會被過濾,不會進行爬取。

allowed_domains沒啥用,註釋掉。

spiders目錄下就生成了demo.py

開啟demo.py,在這裡編寫爬蟲

註釋掉allowed_domains,start_urls填寫要爬的網頁(可以為多個),

我們來爬取

https://python123.io/ws/demo.html

在parse函式裡寫解析頁面的程式碼,parse有個引數response

response就是爬取start_urls得到的返回值,response.body就是文字內容了

解析:(儲存為檔案‘demo.html’)

def parse(self, response):

filename = 'demo.html'

with open (filename, 'wb') as f:

f.write(response.body)

 

執行爬蟲:

(crawl 這個 demo.py檔案,D:\pycharm\workspace\scrapy_demo>)

scrapy crawl demo

 

結果:

 

scrapy爬蟲步驟總結:

1. 首先新建專案

scrapy startproject scrapy_demo

2. 生成一個爬蟲(爬蟲名ant,網址xxx)

cd sciapy_demo

scrapy genspider ant xxx

3. 編寫爬蟲(/spiders/ant.py)

填url(start_url)

寫解析頁面(parse函式)

4. 執行爬蟲

scrapy crawl demo

 

目錄介紹:

scrapy_demo/ 工程名

scrapy.cfg 向伺服器部署Scrapy爬蟲的配置檔案(不需要配置)

scrapy_demo/ app名,同python

spiders/

demo.py 生成的爬蟲模板

__init__ .py 初始化指令碼(不用管)

items.py Items程式碼模板(不用管)

middlewares.py Middlewares程式碼模板(如果要擴充套件middleware功能需要修改)

pipelines.py Pipelines程式碼模板

settings.py scrapy爬蟲的配置檔案(優化爬蟲功能需要改)