问题解决: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
        )
经验分享 程序员 微信小程序 职场和发展