scrapy框架簡介和基礎應用

2022-05-07 18:00:10 字數 2225 閱讀 5695

目錄小試牛刀:將糗百首頁中段子的內容和標題進行爬取

什麼是scrapy?

linux:

pip3 install scrapy
windows:

注意: 按順序依次全部安裝

a. pip3 install wheel

d. pip3 install pywin32

e. pip3 install scrapy

專案結構:

project_name/

scrapy.cfg:

project_name/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

scrapy.cfg 專案的主配置資訊。(真正爬蟲相關的配置資訊在settings.py檔案中)

items.py 設定資料儲存模板,用於結構化資料,如:django的model

pipelines 資料持久化處理

spiders 爬蟲目錄,如:建立檔案,編寫爬蟲解析規則

cd project_name(進入專案目錄)

scrapy genspider 應用名稱 爬取網頁的起始url (例如:scrapy genspider qiubai www.qiushibaike.com)

在步驟2執行完畢後,會在專案的spiders中生成乙個應用名的py爬蟲檔案,檔案原始碼如下

# -*- coding: utf-8 -*-

import scrapy

class qiubaispider(scrapy.spider):

name = 'qiubai' #應用名稱

#允許爬取的網域名稱(如果遇到非該網域名稱的url則爬取不到資料)

allowed_domains = ['']

#起始爬取的url

start_urls = ['']

#訪問起始url並獲取結果後的**函式,該函式的response引數就是向起始的url傳送請求後,獲取的響應物件.該函式返回值必須為可迭代物件或者null

def parse(self, response):

print(response.text) #獲取字串型別的響應內容

print(response.body)#獲取位元組型別的相應內容

修改內容及其結果如下:

22行:robotstxt_obey = false #可以忽略或者不遵守robots協議

# -*- coding: utf-8 -*-

import scrapy

class qiubaispider(scrapy.spider):

name = 'qiubai'

allowed_domains = ['']

start_urls = ['']

def parse(self, response):

#xpath為response中的方法,可以將xpath表示式直接作用於該函式中

odiv = response.xpath('//div[@id="content-left"]/div')

content_list = #用於儲存解析到的資料

for div in odiv:

#xpath函式返回的為列表,列表中存放的資料為selector型別的資料。我們解析到的內容被封裝在了selector物件中,需要呼叫extract()函式將解析的內容從selecor中取出。

author = div.xpath('.//div[@class="author clearfix"]/a/h2/text()')[0].extract()

content=div.xpath('.//div[@class="content"]/span/text()')[0].extract()

#將解析到的內容封裝到字典中

dic=

#將資料儲存到content_list這個列表中

return content_list

執行爬蟲程式:

scrapy crawl 爬蟲名稱 :該種執行形式會顯示執行的日誌資訊

scrapy crawl 爬蟲名稱 --nolog:該種執行形式不會顯示執行的日誌資訊

Scrapy框架應用

引擎 egine 引擎負責控制系統所有元件之間的資料流,並在某些動作發生時觸發事件。排程器 scheduler 用來接受引擎發過來的請求,壓入佇列中,並在引擎再次請求的時候返回.可以想像成乙個url的優先順序佇列,由它來決定下乙個要抓取的 是什麼,同時去除重複的 爬蟲 spiders spiders...

Scrapy學習 二 框架簡介

1.引擎向蜘蛛索取 2.引擎將要爬取的url交給排程器 3.排程器將url生成請求物件放入到指定的佇列 4.從佇列中出列乙個請求 8.引擎將資料交給蜘蛛 9.spider通過xpath解析,將解析結果交給引擎判斷 10.如果得到的url則繼續交給排程器,如果得到資料則交給管道處理 元件說明 scra...

Scrapy框架基礎(一)

1.scrapy的概念 scrapy是乙個python編寫的開源網路爬蟲框架。它是乙個被設計用於爬取網路資料 提取結構效能資料的框架。2.scrapy框架的作用 少量的 就能夠實現快速的抓取 3.scrapy的工作流程 1.爬蟲中的起始url構造成request物件 爬蟲中介軟體 引擎 排程器 4....