Scrapy框架基礎(一)

2021-10-08 06:59:48 字數 1969 閱讀 9890

1.scrapy的概念

scrapy是乙個python編寫的開源網路爬蟲框架。它是乙個被設計用於爬取網路資料、提取結構效能資料的框架。

2.scrapy框架的作用

少量的**,就能夠實現快速的抓取

3.scrapy的工作流程

1.爬蟲中的起始url構造成request物件—>爬蟲中介軟體—>引擎—>排程器

4.爬蟲提取url位址,組裝成request物件—>爬蟲中介軟體—>引擎—>排程器,重複步驟2

5.爬蟲提取資料—>引擎—>管道處理和儲存資料

3.1 scrapy的三個內建物件

3.2 scrapy每個模組的具體作用

4.scrapy的入門使用

4.1安裝scrapy

4.2 scrapy專案開發流程

2.生成乙個爬蟲

3.提取資料

4.儲存資料

4.2.1建立專案

生成的目錄和檔案作用:

4.2.2 建立爬蟲

爬蟲名字:作為爬蟲執行時候的引數

允許爬取的網域名稱:為對於爬蟲設定的爬取範圍,設定之後用於過濾要爬取的url,如果爬取的url與允許的域不通則被過濾掉

此時會出現乙個以爬蟲名字為名的.py檔案,裡面有三個引數和乙個parse方法。

4.2.3.1完善爬蟲

注意:4.2.3.2 定位元素以及提取資料、屬性值的方法

解析並獲取scrapy爬蟲中的資料:利用xpath規則字串進行定位和提取

1.response.xpath方法的返回結果是乙個類似list的型別,其中包含的是selector物件,操作和列表一樣,但是有一些額外的方法。

2.額外方法extract():返回乙個包含有字串的列表

3.額外方法extract_first():返回列表中的第乙個字串,列表為空沒有返回none

4.2.3.3 response響應物件的常用屬性

response.headers:響應頭

response.requests.headers:當前響應的請求頭

response.body:響應體,也就是html**,byte型別

response.status:響應狀態碼

4.2.4 儲存資料

利用管道pipeline來處理(儲存)資料

import json

class

myspiderpipeline

(object):

def__init__

(self)

: self.

file

=open

('itcast.json'

,'w'

)# 爬蟲檔案中提取資料的方法每yield一次item,就會執行一次

# 該方法為固定名稱函式

defprocess_item

(self, item, spider)

: json_data = json.dumps(item, ensure_ascii=

false)+

',\n'

self.

file

.write(json_data)

# 預設使用完管道,需要將資料返回給引擎

return item

def__del__

(self)

: self.

file

.close(

)

2.在settings.py配置檔案的第67行啟用管道

item_pipelines =

配置項中鍵為使用的管道類,管道類使用.進行分隔,第乙個為專案目錄,第二個為檔案,第三個為定義的管道類。

配置項中值為管道的使用順序,設定的數值越小越優先執行,該值一般設定為1000以內。

4.3 執行scarpy

scrapy crawl spider

scrapy爬蟲框架(一) scrapy框架簡介

開啟命令列輸入如下命令 pip install scrapy安裝完成後,python會自動將 scrapy命令新增到環境變數中去,這時我們就可以使用 scrapy命令來建立我們的第乙個 scrapy專案了。開啟命令列,輸入如下命令 scrapy startproject yourproject這裡的...

Scrapy框架基礎(三)

7.scrapy管道的使用 7.1 pipeline中常用的方法 open spider self,spider 在爬蟲開啟的時候僅執行一次 close spider self,spider 在爬蟲關閉的時候僅執行一次 7.2 在settings中能夠開啟多個管道,為什麼需要開啟多個?7.3 pip...

Scrapy框架基礎使用

1 流程框架 2 在命令列中輸入scrapy,會有scrapy常見命令引數 在命令中輸入scrapy startproject quote建立乙個叫quote的專案 cd到建立好的專案目錄中,然後執行scrapy genspider quotes quotes.toscrape.com,建立spid...