Scrapy實現多頁的爬取

2022-08-09 14:45:14 字數 1345 閱讀 1439

1·scrapy實現多頁的爬取

多頁爬取的思路:

1,在start_urls中構建url的列表。逐一請求

2,定義乙個page屬性,利用if判斷來實現多頁

2  深度爬取

1,深度爬取:從列表頁到詳情頁,甚至是更後續的頁面的資料的獲取

2,深度爬蟲: 通常我們要爬取的資料隱藏在form表單之後, 需要越過表單進行爬取

# 深度爬取

訪問列表頁,

從列表頁獲取詳情頁的連線

手動發起請求並制定**

在**中解析詳情頁的資料

將目標資料裝載在臨時容器item中提交給管道

# 請求傳參

1.請求如何傳參: 通過meta引數

meta是乙個字典

meta =

2.取出傳遞的引數

title = response.meta['

title

'] # 中括號裡面的title要和meta欄位的鍵對應

.item是乙個類

2.item既然是乙個類, 為什麼能夠作為乙個容器呢

3.item是如何攜帶著解析出來的目標資料到管道

1

.item是乙個類

物件導向:

面向過程:

建立乙個小助手: 圖紙--> 模板--->類

類 --->建立乙個物件(例項化)

類有一些方法: __kdfkd__ -->魔術方法(雙下劃線方法)

__init__(): 初始化方法, 幫你初始化一定資訊

__new__(): 構造方法, 在記憶體中為你開闢一塊空間放置這個物件

__del__()

__str__()

__repr__()

import scrapy

class

ggsitem(scrapy.item):

# define the fields

foryour item here like:

title =scrapy.field() # 給item類定義乙個屬性

content = scrapy.field()

# 在爬蟲中例項化乙個item物件發生了什麼:

1.在記憶體中建立乙個物件的空間:__new__()

2.執行初始化方法為屬性賦值或為屬性賦值做準備

3.item['

title

'] = title

多頁爬取資料

beautifulsoup自動將輸入文件轉換為unicode編碼,輸出文件轉換為utf 8編碼。你不需要考慮編碼方式,除非文件沒有指定乙個編碼方式,這時,beautifulsoup就不能自動識別編碼方式。這時,你只需要說明一下原始編碼方式就ok。引數用lxml就可以,需要另行安裝並載入。beauti...

scrapy多爬蟲以及爬取速度

主要這段時間一直使用的就是scrapy這個框架,因為公司裡面需要爬取大量的 所以才使用了多爬蟲,但是目前測試也只是幾十個,一直也想不到更好的方法去同時抓取成千上百個結構不同的 所以也很是苦逼的用了scrapy裡面的多爬蟲,對每個 分別解析,還好雖然幾次改需求但是欄位都是統一的,可以很輕鬆的通過ite...

python爬蟲爬取多頁內容

前幾天零組資料庫發文關閉,第乙個念頭是可惜,想著趕緊把資料儲存下來,卻發現爬蟲已經忘得差不多了,趕緊複習一波。不多說,pycharm,啟動!不知道爬啥,隨便找個網頁吧 url 首選獲取目標 html頁面 f12提取請求頭資訊,這裡我們只需ua即可 根據網頁 meta標籤設定編碼格式 如下 impor...