Scrapy實現多頁的爬取


1·scrapy實現多頁的爬取

  

多頁爬取的思路:
        1,在start_urls中構建url的列表。逐一請求
        2,定義一個page屬性,利用if判斷來實現多頁
        3,獲取下一頁實現多頁,此種方式是比較靈活的。

2  深度爬取

  

1,深度爬取:從列表頁到詳情頁,甚至是更后續的頁面的數據的獲取
2,深度爬蟲: 通常我們要爬取的數據隱藏在form表單之后, 需要越過表單進行爬取
# 深度爬取
訪問列表頁,
從列表頁獲取詳情頁的連接
手動發起請求並制定回調
在回調中解析詳情頁的數據
將目標數據裝載在臨時容器item中提交給管道

# 請求傳參
1.請求如何傳參: 通過meta參數
meta是一個字典
meta = {
    'title': title
}
2.取出傳遞的參數
title = response.meta['title']  # 中括號里面的title要和meta字段的鍵對應
# https://www.guidaye.com/dp/

3.Item

  

1.item是一個類
2.item既然是一個類, 為什么能夠作為一個容器呢
3.item是如何攜帶着解析出來的目標數據到管道

  

1.item是一個類
面向對象: 
面向過程: 
創建一個小助手: 圖紙--> 模板---> 類
類 ---> 創建一個對象(實例化)
類有一些方法: __kdfkd__  --> 魔術方法(雙下划線方法)
    
__init__(): 初始化方法, 幫你初始化一定信息
__new__(): 構造方法, 在內存中為你開辟一塊空間放置這個對象
__del__()
__str__()
__repr__()

  

import scrapy

class GgsItem(scrapy.Item):
    # define the fields for your item here like:
    title = scrapy.Field()  # 給item類定義一個屬性
    content = scrapy.Field()

  

# 在爬蟲中實例化一個item對象發生了什么:
1.在內存中創建一個對象的空間:__new__()
2.運行初始化方法為屬性賦值或為屬性賦值做准備
3.item['title'] = title

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM