scrapy 爬蟲框架

2021-08-04 09:21:32 字數 2396 閱讀 4191

1.安裝 公升級pip版本 pip install --upgrade pip

通過pip安裝scrapy框架 pip install scrapy

安裝成功 只執行scrapy 進行測試是否安裝成功

2. scrapy startproject "爬蟲專案名稱"

執行此命令,可以生成乙個爬蟲專案 

會預先生成一些檔案在裡面.

3.執行命令 生成爬取資料模板  scrapy genspider 檔名[類名] "要爬去的網域名稱"

[如]:scrapy genspider itcast ""

// 命令生成的**如下:

class itcastspider(scrapy.spider):

name = 'itcast' // 模組名稱

allowed_domains = ['']// 爬取的網域名稱[可選]

start_urls = [''] // 爬取的開始路徑

// 爬取後執行的**

def parse(self, response):

print (response.body)// 檢視相應原始碼

print("end..");

#這裡若有個迴圈,則可以使用管道 yield則會進入管道

for a in "test":

item=scrapytestitem()

item["title"]=a

yield item

在window下面,按住shift 再右鍵,可以直接在此目錄下開啟命令視窗,然後執行如下命令

4.[檢查爬蟲狀態命令]scrapy check 模組名稱[這個地方要寫上面那個模板裡面的 name = 'itcast' 不需要寫類名或者檔名稱]

5.[執行乙個爬蟲命令] scrapy crawl 模組名稱[這個地方要寫上面那個模板裡面的 name = 'itcast' 不需要寫類名或者檔名稱]

可以在命令列輸入scrapy 來獲取上面這些命令

6.管道 

1.在爬蟲主模板下面的 parse方法裡面,需要有乙個迴圈.該迴圈裡面需使用yield 來返回每次迴圈的item資料

2.item 是繼承了scrapy.item 的子類,使用者儲存資料,

3.管道裡面可以執行處理資料的操作

4.程式執行流程  爬取到資料之後,執行主墨白裡面的parse方法,通過response獲取到資料,迴圈使用yield 返回item資料,item是經過預處理的資料儲存在item裡面的

再在管道裡面處理這些資料[可以儲存下來..等操作]

5.需要在專案裡面的setting.py裡面註冊

item_pipelines =

7 item 的 類模型

import scrapy

class scrapytestitem(scrapy.item):

# define the fields for your item here like:

# name = scrapy.field()

title = scrapy.field()

#需要的字段在這裡新增即可.

pass

8.管道的類

class scrapytestpipeline(object):

#可以新增init和close [類初始和類結束]方法.來預先處理些init操作

def process_item(self, item, spider):

print("管道-------------");

#  print(item)

#處理item帶過來的邏輯資料**

return item

9.xpath 可通過表示式來擷取網頁中的資料

response.xpath("//div[@class='li_txt']")

10.scrapy shell "要爬取的** " 直接在專案的命令中敲此命令,可以在命令中直接爬取到對應的資料. 然後可以輸入相應的命令,直接爬取資料,比如response.body 獲取響應資料

11.選擇器

1.xpath():傳入xpath表示式,返回該表示式所對應的所有節點的list列表

xpath表示式的例子及對應的含義:

/html/head/title: 選擇文件中 標籤內的 元素

/html/head/title/text(): 選擇上面提到的 元素的文字

//td: 選擇所有的 元素

//div[@class="mine"]: 選擇所有具有 class="mine" 屬性的 div 元素

2.extract(): 序列化該節點為unicode字串並返回list

3.css():傳入css表示式,返回該表示式所對應的所有節點的selector list列表,語法同beautifulsoup4

4.re():根據傳入的正規表示式對資料進行提取,返回unicode字串list列表

scrapy爬蟲框架

作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...

Scrapy爬蟲框架

scrapy中的各大元件及其功能 1.scrapy引擎 engine 引擎負責控制資料流在系統的所有元件中流動,並在相應動作發生時觸發事件。2.排程器 scheduler 排程器從引擎接收request並將它們入隊,以便之後引擎請求request時提供給引擎。4.spider。spider是scra...

scrapy 爬蟲框架

爬蟲基礎 2 各模組的作用 close spider spider spider 爬蟲專案大概流程 1 新建專案 spider startproject 2 明確需要目標 產出 編寫item.py 可以有很多個,被按照順序載入執行 作用是對發出的請求和返回的結果進行預處理 在middlewares中...