美文网首页Python3自学 爬虫实战
Scrapy:reuqest.meta 的用法

Scrapy:reuqest.meta 的用法

作者: dex0423 | 来源:发表于2020-01-03 00:29 被阅读0次

scrapy.meta 简介

  • scrapy.meta 是 scrapy 中 Reuqest 的元数据字典,为 dict 类型;
  • scrapy.meta 在 scrapy 中用于给框架中 其他组件响应处理函数 传递参数信息;
  • 作为一个 python 字典,meta 有一个 get 方法,当第二个参数是一个默认值时,在第一个参数不在字典中的情况下发生,如果不存在第二个参数同时第一个参数又不存在字典中,则会引发 KeyError 异常;

例如:对于 request.meta.get('meta_key', 'default_value') ,如果没有从 meta 字典中获取到 'meta_key' 的值,则默认返回 'default_value'。

  • meta 同时可应用在 request 和 response的参数传递中;
request.meta.get('meta_key', 'default_value')
response.meta.get('meta_key', 'default_value')

例子

  • 在items模块中有下面三个参数:
import scrapy
class TextItem(spider.Item):
    title = scrapy.Field()
    price = scrapy.Field()
    image = scrapy.Field()
  • 在spider爬虫中:
class TaobaoSpider(scrapy.Spider):
    name = ['taobao']
    allowed_domains = ['www.taobao.com']
    def parse1(self,response):
        '''
        需要知道的是item是一个字典
        '''
        item = TextItem()
        for product in response.css('......').extract():
            item['title'] = product.css('......').extract_first()
            item['price'] = product.css('......').extract_first()
            url = product.css('......').extract_first()
            yield = scrapy.Request(url=url, meta={'item':item} callback=self.parse2)
            '''
            比如我们要爬取淘宝上的商品,我们在第一层爬取时候获得了标题(title)和价格(price),
            但是还想获得商品的图片,就是那些点进去的大图片,假设点进去的链接是上述代码的url,
            利用scrpy.Request请求url后生成一个Request对象,通过meta参数,把item这个字典赋值给meta字典的'item'键,
            即meta={'item':item},这个meta参数会被放在Request对象里一起发送给parse2()函数。

            '''
    def parse2(self,response):
        item = response.meta['item']
        for product in response.css('......').extract():
            item[imgae] = product.scc('......').extract_first()
        return item
        '''
        这个response已含有上述meta字典,此句将这个字典赋值给item,完成信息传递。
        这个item已经和parse中的item一样了
        之后我们就可以做图片url提取的工作了,
        数据提取完成后return item ,这样就完成了数据抓取的任务了。

        '''

联系博主:下为博主微信,欢迎骚扰

image.png

相关文章

  • Scrapy:reuqest.meta 的用法

    scrapy.meta 简介 scrapy.meta 是 scrapy 中 Reuqest 的元数据字典,为 di...

  • python爬虫13:scrapy

    scrapy的结构 scrapy的工作原理 scrapy的用法

  • scrapy 框架总结

    scrapy的基本用法 通过命令创建项目scrapy startproject 项目名称 用pycharm打开项目...

  • Scrapy入门环境搭建

    Scrapy入门环境搭建 概述 本文介绍用python3来搭建scrapy环境,实践一下最简单的scrapy用法。...

  • Scrapy

    基本用法 python -m scrapy startproject yourproject 建立project ...

  • Scrapy的用法

    1.第一步:创建爬虫项目 2.使用pycharm打开爬虫项目 打开结果如下(目录结构): 3.第三步:创建爬虫说明...

  • Linux上使用crontab命令完成定时爬虫

    本文主要记录: 1、crontab的用法。 2、crontab与scrapy的结合。 一...

  • scrapy signal的用法

    与settings同级创建一个py文件 1. 撸代码 2. 把中间件加到downloadMiddleware 官方...

  • Scrapy的CrawlSpider用法

    官方文档https://docs.scrapy.org/en/latest/topics/spiders.html...

  • scrapy 用法简介

    Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 Scrap...

网友评论

    本文标题:Scrapy:reuqest.meta 的用法

    本文链接:https://www.haomeiwen.com/subject/utvaoctx.html