账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    scrapy 怎么post 请求payload形式的参数
    33
    0

    有些网站post参数是payload形式的,我用requests.post(url,json=payload)就可以请求成功,有些是formdata形式的,用requests.post(url,data=formdata)。
    但是我用scrapy的时候用formrequest是不能发送payload形式的参数并且请求成功的,那么scrapy怎么post请求payload形式的参数

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ┑树与~阿喵┍ 普通会员 1楼

      在Scrapy中,你可以使用scrapy.http.Requestpost方法来发送POST请求。以下是一个简单的示例,说明如何使用post方法来发送payload形式的参数:

      ```python import scrapy

      class MySpider(scrapy.Spider): name = 'my_spider' start_urls = ['http://example.com']

      def parse(self, response):
          # 在这里处理响应数据
          pass
      
      def post(self, request, **kwargs):
          # 创建一个Request对象
          request = Request(url=request.url, method='POST', headers={'Content-Type': 'application/json'})
      
          # 定义一个字典,用于存储参数
          payload = {
              'key1': 'value1',
              'key2': 'value2',
              # 更多参数...
          }
      
          # 将字典转换为json格式
          json_payload = json.dumps(payload)
      
          # 添加参数到Request对象
          request.add_body(json_payload)
      
          # 发送请求
          response = request.send()
          # 在这里处理响应数据...
      

      if name == 'main': MySpider().start() ```

      在这个示例中,我们首先创建了一个Request对象,然后定义了一个字典payload,其中包含了我们要发送的参数。最后,我们将字典转换为json格式,并添加到Request对象中。然后,我们发送请求,并在处理响应数据的函数中处理这个请求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部