POST请求中的格式,整数和词组

时间:2015-12-22 12:17:22

标签: ajax post scrapy

服务器上的脚本发送回data.location并将浏览器重定向到data.location,我想在我的脚本中捕获它。此代码返回{"location": null}

def load_page(self, response):
    """
    Get server response for the data sent.

    FormRequest from Chrome console:

    location:https://www.example.com/menu/
    top_level:false                                   <--- boolean
    section:4                                         <--- integer
    departmets:[{"desc":"dep-select", "value":"119"}] <--- string (?)

    """
    url = urlparse.urljoin(self.var.root[:-1], 'navigation/load_department/')
    formdata={'location':'https://www.example.com/menu/',
              'section': '4', 
              'departments':'[{"desc":"dep-select", "value":"119"}]',
              'top_level': 'False'}

    return scrapy.FormRequest(url=url,
                   method='POST', 
                   formdata=formdata, 
                   callback=self.next_page)

我期望的是{"location": 'some URL'}

  • 我怀疑它是因为上面的4是整数,我设法只发送一个字符串。
  • 如果我将其作为整数发送,scrapy会抱怨它只需要str或unicode。
  • 如果我将请求发送为formdata=json.dumps(...),则有关解压缩值的另一个错误。
  • Scrapy不接受departments=中的词典。
  • 请求Request(body=json(...))仅返回{}

如何将此整数传递给formdata,和/或这是一个格式正确的POST请求?

谢谢!

0 个答案:

没有答案