python scrapy Request

Python3.6| scrapy Request 记录

介绍

Request类是一个http请求的类,对于爬虫而言是一个很重要的类。通常在Spider中创建这样的一个请求,在Downloader中执行这样的一个请求。同时也有一个子类FormRequest继承于它,用于post请求。

安装scrapypip install scrapy

Spider中通常用法: yield scrapy.Request(url = ‘explain.com’)

类属性和方法有:

url

method

headers

body

meta

copy()

replace([url, method, headers, body, cookies, meta, encoding, dont_filter, callback, errback])

Request

class scrapy.http.Request(url[, callback, method=‘GET’, headers, body, cookies, meta, encoding=‘utf-8’, priority=0, dont_filter=False, errback, flags])

参数说明

参数说明
url请求的url
callback回调函数,用于接收请求后的返回信息,若没指定,则默认为parse()函数
methodhttp请求的方式,默认为GET请求,一般不需要指定。若需要POST请求,用FormRequest即可
headers请求头信息,一般在settings中设置即可,也可在middlewares中设置
bodystr类型,为请求体,一般不需要设置(get和post其实都可以通过body来传递参数,不过一般不用)
cookiesdict或list类型,请求的cookiedict方式(name和value的键值对):cookies = {‘name1’ : ‘value1’ , ‘name2’ : ‘value2’} list方式:cookies = [{‘name’: ‘Zarten’, ‘value’: ‘my name is Zarten’, ‘domain’: ‘example.com’, ‘path’: ‘/currency’}]
encoding请求的编码方式,默认为’utf-8’
priorityint类型,指定请求的优先级,数字越大优先级越高,可以为负数,默认为0
dont_filter默认为False,若设置为True,这次请求将不会过滤(不会加入到去重队列中),可以多次执行相同的请求
errback抛出错误的回调函数,错误包括404,超时,DNS错误等,第一个参数为Twisted Failure实例
flagslist类型,一般不会用到,发送请求的标志,一般用于日志记录
meta可用户自定义从Request到Response传递参数,这个参数一般也可在middlewares中处理yield scrapy.Request(url = ‘zarten.com’, meta = {‘name’ : ‘Zarten’}) 在Response中: my_name = response.meta[‘name’]
proxy设置代理,一般在middlewares中设置,可以设置http或https代理:request.meta[‘proxy’] = ‘https://’ + ‘ip:port’
download_timeout设置请求超时等待时间(秒),通常在settings中设置DOWNLOAD_TIMEOUT,默认是180秒(3分钟)
max_retry_times最大重试次数(除去第一次下载),默认为2次,通常在settings中 RETRY_TIMES设置
dont_redirect设为True后,Request将不会重定向
dont_retry设为True后,对于http链接错误或超时的请求将不再重试请求
handle_httpstatus_listhttp返回码200-300之间都是成功的返回,超出这个范围的都是失败返回,scrapy默认是过滤了这些返回,不会接收这些错误的返回进行处理。不过可以自定义处理哪些错误返回:yield scrapy.Request(url= ‘https://httpbin.org/get/zarten’, meta= {‘handle_httpstatus_list’ : [404]})
handle_httpstatus_all设为True后,Response将接收处理任意状态码的返回信息
dont_merge_cookiesscrapy会自动保存返回的cookies,用于它的下次请求,当我们指定了自定义cookies时,如果我们不需要合并返回的cookies而使用自己指定的cookies,可以设为True.
dont_cache设为True后,不会缓存
redirect_urls
bindaddress绑定输出IP
dont_obey_robotstxt设为True,不遵守robots协议,通常在settings中设置
download_maxsize设置下载器最大下载的大小(字节),通常在settings中设置DOWNLOAD_MAXSIZE,默认为1073741824 (1024MB=1G),若不设置最大的下载限制,设为0
download_latency只读属性,获取请求的响应时间(秒)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值