Python Scrapy框架基础知识(二)

scrapy数据建模

       在itrms.py中,定义数据字段,配合注释提示所需字段,及配合管道类使用

建模方式(items.py文件下)
# 默认模板类
import scrapy
    
class myspider(scrapy.Item):
    name = scrapy.Field  # 进行注释标记
    pass
使用方法(爬虫文件下)
# 导入items
from 地址.items import MyItem

# 实例化items数据
item = MyItem()

# 引用
item['索引'] =i.xpath('xpath语法')[0].extract() 
构造request对象,发送请求
# 翻页操作
every_url = response.xpath('xpath语法/@herf').extract_frist()

# 判断终止点
if every_url != '最后一页url'
    next_url = response.urljoin(every_url)
    # 构造url,返回请求参数
    yield scrapy.Request(
        # 下一页url
        url = next_url,
        # 设置下一页解析方法(方法不同时,需要添加解析方法)
        callback = self.parse
    )
        scrapy.Request参数
scrapy.Request(url[,callback,method='GET',headers,body,cookies,meta,dont_filter=Flase])
  1. url:请求地址
  2. callback:表示当前函数处理方式
  3. meta:实现数据传递,合并不同页面数据
  4. dont_filter:默认值为False。请求过的url不会被重复请求
  5. method:指定POST/GET请求
  6. headers:接收字典,不包含cookies
  7. cookies:专用于存储cookies
  8. body:post请求时,接收json数据
                meta参数使用方法

在爬虫文件parse方法中使用

def parse(self, response):

    yield scrapy.Request(
        # 下一页url
        url = next_url,
        # 设置下一页解析方法(方法不同时,需要添加解析方法)
        callback = self.parse_detail,
        # 设置meta参数
        meta={"item":item}
    )
def parse_detail(self, response):
    # 获取item
    item = response.meta["item"]

    # 返回引擎
    yield item

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值