【Scrapy】初步認(rèn)識(shí)爬蟲

1、簡(jiǎn)介
Scrapy是一套基于Twisted的異步處理應(yīng)用程序框架,用于抓取網(wǎng)站和提取結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)可用于廣泛的應(yīng)用程序,如數(shù)據(jù)挖掘、信息處理或歷史存檔。
2、制作scrapy爬蟲一共需要4步
1)新建項(xiàng)目: scrapy startproject xxx
2)? 明確目標(biāo): items.py, 明確需要抓取的目標(biāo)
3)制作爬蟲: spiders/xxxspider.py,制作爬蟲開始爬取網(wǎng)頁
4)存儲(chǔ)內(nèi)容: pipelines.py, 設(shè)計(jì)管道存儲(chǔ)爬取內(nèi)容。

3、創(chuàng)建scrapy項(xiàng)目
scrapy startproject xxxxxx?
4、觀察項(xiàng)目目錄結(jié)構(gòu)

scrapy.cfg: 爬蟲配置文件

scrapy_test/spiders/__init__.py:? 導(dǎo)包文件。之后爬蟲的主要文件都在scrapy_test/spiders目錄下。
scrapy_test/__init__.py: 導(dǎo)包文件
scrapy_test/items.py

scrapy_test/middlewares.py: 中間件
scrapy_test/pipelines.py: 管道文件,用來處理item數(shù)據(jù)。比如將item寫入到文件或數(shù)據(jù)庫中。
scrapy_test/settings.py: 爬蟲配置文件,爬蟲會(huì)根據(jù)該文件里的配置遵守一些約定去爬取。如下圖所示:當(dāng)發(fā)起請(qǐng)求后,請(qǐng)求會(huì)經(jīng)過中間件ScrapyTestDownloaderMiddleware,后面的543是優(yōu)先級(jí),數(shù)字越小,優(yōu)先級(jí)越高,取值范圍:0-1000。當(dāng)有多個(gè)中間件時(shí),就會(huì)根據(jù)優(yōu)先級(jí)去執(zhí)行各個(gè)插件。

5、生成一個(gè)爬蟲腳本
可以生成一個(gè)爬蟲腳本,也可以自己創(chuàng)建一個(gè)爬蟲腳本,重要的是爬蟲腳本內(nèi)容。
命令生成:
在spiders目錄下執(zhí)行:
scrapy genspider test1 "http://www.baidu.com"
表示生成爬蟲test1,爬取的范圍是http://www.baidu.com。

生成的爬蟲的內(nèi)容:

內(nèi)容解釋:
name = 'test1': 該爬蟲的名稱為test1。
allowed_domains = ['www.baidu.om']: 允許你爬取的域名范圍。
start_urls = ['http://www.baidu.com']: 爬蟲開啟請(qǐng)求的第一個(gè)url地址。
parse(): 當(dāng)下載器處理完請(qǐng)求之后,都會(huì)經(jīng)過這個(gè)parse()函數(shù)。
爬蟲名稱可以隨意修改,爬蟲腳本名稱可以隨意修改,之后運(yùn)行爬蟲的時(shí)候,指定準(zhǔn)確爬蟲名即可。
6、運(yùn)行爬蟲
運(yùn)行爬蟲
scrapy crawl test1

檢查爬蟲test1的狀態(tài)
scrapy check test1

其他命令可以參考:

參考文檔:
Scrapy 教程 — Scrapy 2.5.0 文檔 (osgeo.cn)