scrapy 框架body/formdata的使用

前言遇到下面这样的网页你该如何选择参数导入呢?http://ggzy.hebei.gov.cn/hbggfwpt/jydt/salesPlat.html
摘要由CSDN通过智能技术生成

一、前言

二、scrapy框架中FormRequest请求的formdata和body

两者的区别不大,主要是多尝试使用即可,具体如下:

1.formdata

scrapy源码中

class FormRequest(Request):
    valid_form_methods = ['GET', 'POST']

    def __init__(self, *args, **kwargs):
        formdata = kwargs.pop('formdata', None)
        if formdata and kwargs.get('method') is None:
            kwargs['method'] = 'POST'

        super(FormRequest, self).__init__(*args, **kwargs)

        if formdata:
            items = formdata.items() if isinstance(formdata, dict) else formdata
            querystr = _urlencode(items, self.encoding)
            if self.method == 'POST':
                self.headers.setdefault(b'Content-Type', b'application/x-www-form-urlencoded')
                self._set_body(querystr)
            else:
                self._set_url(self.url + ('&' if '?' in self.url else '?') + querystr)
  • 其中有一行,items = formdata.items() if isinstance(formdata, dict) else formdata,要求的formdata为dict
  • 这下我们知道了,使用formdata时要传入一个dict
  • dict的值传入时需要注意: dict的value,不能为int,例如3要转化为"3"
  • for一个橘子
yield scrapy.FormRequest(
                url=f"http://example.com",
                headers=self.fake_headers(jsessionid),
                callback=self.handle_response,
                formdata=self.fake_data({
   
		            "page": "123",
		            "TimeStr": 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值