python中的Scrapy框架使用

2021-09-26 21:06:52 字數 2428 閱讀 9323

scrapysheel(

scrapy終端是乙個互動終端,供您在未啟動spider的情況下嘗試及除錯您的爬取**。 

其本意是用來測試提取資料的**,不過您可以將其作為正常的python終端,在上面測試任何的python**。

該終端是用來測試xpath或css表示式,檢視他們的工作方式及從爬取的網頁中提取的資料。

在編寫您的spider時,該終端提供了互動性測試您的表示式**的功能,免去了每次修改後執行spider的麻煩。

一旦熟悉了scrapy終端後,您會發現其在開發和除錯spider時發揮的巨大作用。

安裝:1、安裝lxml 一定要看多少版本的python來安裝 系統多少位(

pip install lxml

2、安裝twisted 一定要看多少版本的python來安裝 系統多少位(

pip install twisted

3、安裝scrapy

pip install scrapy

關聯安裝

pip install    pypiwin32

建立專案

在開始爬取之前,您必須建立乙個新的scrapy專案。 進入您打算儲存**的目錄中,執行下列命令:

1、scrapy startproject tutorial(tutorial:專案的名稱)

該命令將會建立包含下列內容的 tutorial 目錄:

tutorial/

scrapy.cfg

tutorial/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...這些檔案分別是:

scrapy.cfg: 專案的配置檔案

tutorial/: 該項目的python模組。之後您將在此加入**。

tutorial/items.py: 專案中的item檔案.

tutorial/pipelines.py: 專案中的pipelines檔案.

tutorial/settings.py: 專案的設定檔案.

tutorial/spiders/: 放置spider**的目錄.

2、新建立乙個spider(蟲),您必須繼承 scrapy.spider 類, 且定義以下三個屬性:

2.1、在專案中建立乙個spider(蟲)

scrapy genspider 爬蟲名 網域名稱(不用加http,執行完本命令以後會在爬蟲專案**現乙個新的py檔案重新整理)

name: 用於區別spider。 該名字必須是唯一的,您不可以為不同的spider設定相同的名字。

start_urls: 包含了spider在啟動時進行爬取的url列表。 因此,第乙個被獲取到的頁面將是其中之一。

後續的url則從初始的url獲取到的資料中提取。

parse()是spider的乙個構造方法。通過response響應中的資料都會在這個方法中, 該方法負責解析返回的資料(response data),

提取資料(生成item)以及生成需要進一步處理的url的 request 物件。

import scrapy

class dmozspider(scrapy.spiders.spider):

name = "dmoz"

allowed_domains = ["dmoz.org"] #不能超過網域名稱

start_urls = [

"",""

]//其中response是返回的資料

def parse(self, response):

filename = response.url.split("/")[-2]

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

f.write(response.body)

執行爬蟲

進入專案(scrapysheel)的根目錄,執行下列命令啟動spider:

scrapy crawl dmoz

crawl dmoz 啟動用於爬取 dmoz.org 的spider

可以在doc命令中使用 scrapy shell "http:\\www.baidu.com" 後返回乙個response,可以用response.xpath('//title')等方式來獲取資料

可通過selector的4個基本方法來獲取資料

xpath()

css()

extrct()這個返回的是乙個list

re()正規表示式

例:返回物件 選擇器    選擇器型別     獲取值(/text())  返回資料 

response.selector. xpath('//title/text()').       extract()

response.selector. css('title::text').            extract()

一般是不用加selector

Python爬蟲學習(七)Scrapy爬蟲框架詳解

engine從spider處獲得爬取請求 request engine將爬取請求 給scheduler,用於排程 engine從scheduler處獲得下乙個要爬取的請求 engine將爬取請求通過中介軟體傳送給 爬取網頁後,形成響應 response 通過中介軟體發給engine engine將收...

Mac python 搭建scrapy爬蟲框架

1 在mac上安裝好python3,以及相關元件 2 進入python3的虛擬環境 workon env3.7 3 安裝scrapy pip install scrapy 4 建立乙個scrapy專案 4.1選擇路徑專案路徑 cd users panstark pycharmprojects 4.2...

python中scrapy框架的簡單使用

注 對過去一周的學習有個簡單的總結,鞏固一下 加深記憶 安裝 pip install scrapy 報錯 少外掛程式的話 pip install upgrade incremental 公升級pip包 pip install twisted scrapy 底層的乙個框架 執行完之後在安裝scrapy...