问题解决:Formdata格式获取不了想要的数据
今天在做爬虫程序时遇到问题:始终获取不了我想要的数据,一直获取的都是首页的数据。经分析过后是Formdata出了问题。服务器不能识别出我构造的错误的Formdata,因此返回的是默认的首页数据。
要构造的Formdata如下: Formdata代码如下:
formdata = { pageNum: 1, numPerPage: 100, orderField: , orderDirection: , search_LIKE_f01: , search_LIKE_f02: 打印机, search_LIKE_f07: , button: 查 找, jpageNum: 1, numPerPage: 100 } # 我用的scrapy.Requests模块,代码如下 yield scrapy.Request( url=url, method=post, headers=headers, body=json.dumps(formdata), callback=self.parse )
结果是能获取首页的数据,但是获取的并不是我指定的数据(打印机相关)。
原因是Formdata的格式错了 再看浏览器中Formdata的源码,发现这不是字典的格式,包装成json是错误的。 解决:令Formdata等于上述代码,且formdata不用json。dumps(),直接传输即可
formdata = pageNum=1&numPerPage=100&orderField=&orderDirection=&search_LIKE_f01=&search_LIKE_f02=%E6%BF%80%E5%85%89&search_LIKE_f07=&jpageNum=1&numPerPage=100 yield scrapy.Request( url=url, method=post, headers=headers, body=formdata, callback=self.parse )
上一篇:
IDEA上Java项目控制台中文乱码