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
原文地址:https://www.cnblogs.com/nbzyf/p/13601420.html