2 1 scrapy框架的學習

2021-07-31 23:52:59 字數 2253 閱讀 2442

scrapy簡介

scrapy的基本使用步驟

scrapy是個框架,很多輪子不用自己這寫了。

不過scrapy比較「重」,如果是小型、單一的爬蟲任務,我覺得自己重頭寫反而比較輕便快速,夠用就好。

剛開始學爬蟲,建議先理解爬蟲的幾個模組,理解了原理再學scrapy才會有效率。

我的這個部落格就是按照這個邏輯,先自己寫幾個輪子,理解爬蟲的框架(第一章),然後再學習scrapy框架(第二章)。

因為我安裝了python整合框架anaconda。它包含了幾乎所有python資料分析相關的包,並且做了相容化處理。所以安裝scrapy非常容易:

1.開啟cmd輸入:conda list可以檢視當前anaconda所包含的所有包,發現沒有scrapy。

2.在cmd中輸入conda install scrapy坐等成功即可。

很多資料都說scrapy不支援python 3.x,這是因為資料太老。實踐證明是支援。 現在幾乎所有的包都支援python 3.x 特別是這種初學者常用的,所以建議大家全面擁抱python 3.x 特別是初學者。

是開源的爬蟲框架。

速度快。只需要寫規則。

易擴充套件。

便捷的,用python編寫的。

1.在目標資料夾內按住shift加右鍵,進入cmd

2.輸入**建立專案tutorial,並進入該專案

scrapy startproject tutorial

cd tutorial

3.建立預設格式的爬蟲(可以不止乙個)

scrapy genspider dmoz_spider domz.org

# 爬蟲名字 和 作用域

4.更改dmoz_spider.py與item

5.執行

scrapy crawl dmoz_spider -o douban.csv

# (最後 -o 的意思是 把爬取的資料儲存在douban.csv

中,同理 換成douban.json也就存在了json中)

**主要更改兩個部分:items.py與dmoz_spider.py **如下:

items.py

# 該類用於定義需要的資料

# 在這個例子中,需要獲取book的名字,描述,連線。

import scrapy

class

tutorialitem

(scrapy.item):

# define the fields for your item here like:

# name = scrapy.field

() title = scrapy.field

() desc = scrapy.field

() link = scrapy.field

()

dmoz_spider.py

# 這個類用於構建爬蟲,主要是解析器,

# 可以用bs和xpath和正則,這裡用xpath

import scrapy

from tutorial.items import tutorialitem

class

dmozspiderspider

(scrapy.spider):

name = "dmoz_spider"

# 爬蟲的名字(唯一)

allowed_domains = ["dmoztools.net"] # 爬蟲作用域

start_urls = [''] # 初始url

defparse

(self, response):

# 解析函式,注意這裡的xpath位址是用谷歌瀏覽器的f12 直接獲取。谷歌瀏覽器就是牛!

divs = response.xpath('//*[@id="site-list-content"]/div')

for div in divs:

item = tutorialitem()

item['title'] = div.xpath('div[3]/a/div/text()').extract()

item['link'] = div.xpath('div[3]/a/@href').extract()

item['desc'] = div.xpath('div[3]/div/text()').extract()

yield item

Scrapy框架學習

scrapy框架的工作流程 1.首先spiders 爬蟲 將需要傳送請求的url requests 經scrapyengine 引擎 交給scheduler 排程器 2.scheduler 排序,入隊 處理後,經scrapyengine,middlewares 可選,主要有user agent,pr...

Scrapy爬蟲框架學習

目錄 五大模組 spider itempipeline schedule engine 四個配置引數 三個物件 常用屬性 常用方法 response 常用屬性 常用方法 item 兩類中介軟體 middleware spidermiddleware 解析html,產生爬取請求和資料 流水線處理資料,...

Scrapy框架學習筆記

在pycharm中新建乙個專案kwscrapyspider 2.file setting python interpreter安裝scrapy 開啟terminal,執行命令 scrapy startproject kwspider 建立scrapy專案 cd kwspider scrapy gen...