关于爬虫中scrapy.Request的更多参数用法

 更新时间:2022年07月15日 09:42:04   作者:黑马蓝汐  
这篇文章主要介绍了关于爬虫中scrapy.Request的更多参数用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

爬虫中scrapy.Request的更多参数

scrapy.Request的参数

scrapy.Request(url[,callback,method="GET",headers,body,cookies,meta,dont_filter=Fallse])

参数解释:

中括号中的参数为可选参数,可写可不写

  • callback:表示当前的url响应交给哪个函数去处理(默认为parse函数)
  • meta:实现数据在不同解析函数中传递,meta默认带有部分数据,比如下载延迟、请求深度等(用于解析方法之间的数据传递,常用在一条数据分散在多个不同结构的页面中的情况)
  • dont_filter:默认为False,会过滤请求的url地址,即请求过的url地址不会继续被请求,对需要重复请求的url地址可以把它设置为True,start_urls中的地址会被反复请求,否则程序不会启动
  • headers:接收一个字典,其中不包括cookies
  • cookies:接收一个字典,专门放置cookies
  • method:指定POST或GET请求
  • body:接收json字符串,为post的数据发送payload_post请求

meta参数

meta的作用:meta可以实现数据在不同的解析函数中的传递

在爬虫文件的parse方法中,增加一个函数parse_detail函数(用来解析另一个页面):

def parse(self,response):
    ...
    yield scrapy.Request(detail_url, callback=self.parse_detail,meta={"item":item})
...

def parse_detail(self,response):
    #获取之前传入的item
    item = resposne.meta["item"]

就相当于,把parse中解析的数据存到了meta字典中,对应的key为item;而在另一个函数(parse_detail)中,通过meta字典中的key:item来提取parse中的数据,从而实现不同页面数据的拼接

注意:

  • meta参数是一个字典
  • meta字典中有一个固定的键proxy,表示代理ip

scrapy中Request中常用参数

  • url: 就是需要请求,并进行下一步处理的url
  • callback: 指定该请求返回的Response,由那个函数来处理。
  • method: 一般不需要指定,使用默认GET方法请求即可
  • headers: 请求时,包含的头文件。一般不需要。内容一般如下:使用 urllib2 自己写过爬虫的肯定知道
Host: media.readthedocs.org
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/css,*/*;q=0.1
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://scrapy-chs.readthedocs.org/zh_CN/0.24/
Cookie: _ga=GA1.2.1612165614.1415584110;
Connection: keep-alive
If-Modified-Since: Mon, 25 Aug 2014 21:59:35 GMT
Cache-Control: max-age=0
  • meta: 比较常用,在不同的请求之间传递数据使用的。字典dict型
request_with_cookies = Request(url="http://www.example.com",
       cookies={'currency': 'USD', 'country': 'UY'},
       meta={'dont_merge_cookies': True})
  • encoding: 使用默认的 'utf-8' 就行。

dont_filter: indicates that this request should not be filtered by the scheduler. 
     This is used when you want to perform an identical request multiple times, 
     to ignore the duplicates filter. Use it with care, or you will get into crawling loops. 
     Default to False.

  • errback: 指定错误处理函数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python实现飞行棋游戏

    python实现飞行棋游戏

    这篇文章主要为大家详细介绍了python实现飞行棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Python 由字符串函数名得到对应的函数(实例讲解)

    Python 由字符串函数名得到对应的函数(实例讲解)

    下面小编就为大家带来一篇Python 由字符串函数名得到对应的函数(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Django 连接sql server数据库的方法

    Django 连接sql server数据库的方法

    这篇文章主要介绍了Django 连接sql server数据库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Python实现人机中国象棋游戏

    Python实现人机中国象棋游戏

    中国象棋是一种古老的棋类游戏,大约有两千年的历史。本文将介绍如何通过Python中的Pygame模块实现人机中国象棋游戏,感兴趣的可以学习一下
    2022-01-01
  • python中如何打包用户自定义模块

    python中如何打包用户自定义模块

    在本篇文章里小编给大家整理的是一篇关于python中如何打包用户自定义模块的相关文章,有兴趣的朋友们可以参考下。
    2020-09-09
  • python中pyqtgraph知识点总结

    python中pyqtgraph知识点总结

    在本篇文章里小编给大家整理的是一篇关于python中pyqtgraph知识点总结内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • Python数据结构与算法(几种排序)小结

    Python数据结构与算法(几种排序)小结

    这篇文章主要介绍了Python数据结构与算法(几种排序)的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Python获取单个程序CPU使用情况趋势图

    Python获取单个程序CPU使用情况趋势图

    这篇文章主要介绍了Python获取单个程序CPU使用情况趋势图,本文使用matplotlib将数据可视化,需要的朋友可以参考下
    2015-03-03
  • Python跳出多重循环的方法示例

    Python跳出多重循环的方法示例

    这篇文章主要介绍了Python跳出多重循环的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • pyqt远程批量执行Linux命令程序的方法

    pyqt远程批量执行Linux命令程序的方法

    今天小编就为大家分享一篇pyqt远程批量执行Linux命令程序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论