ctcxixi
2019-05-29 17:34
采纳率: 100%
浏览 3.2k

python在post请求下爬取数据,返回的值为什么为空?

本人小白,尝试爬杭州市二手房挂牌信息,
网址:http://jjhygl.hzfc.gov.cn/webty/gpfy/gpfySelectlist.jsp,
代码如下

import requests
url = 'http://jjhygl.hzfc.gov.cn/webty/WebFyAction_getGpxxSelectList.jspx'
data = {'page': 1}
headers = {'Host': 'jjhygl.hzfc.gov.cn',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0',
            'Accept': 'text/html, */*; q=0.01',
            'Accept-Language': 'en-US,en;q=0.5',
            'Accept-Encoding': 'gzip, deflate',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'X-Requested-With': 'XMLHttpRequest',
            'Content-Length': '311',
            'Connection': 'keep-alive',
            'Referer': 'http://jjhygl.hzfc.gov.cn/webty/gpfy/gpfySelectlist.jsp',
            'Cookie': 'ROUTEID=.lb6; JSESSIONID=2E78A1FE8DBC80F1CEEE20264BE96B1F.lb6; Hm_lvt_70e93e4ca4be30a221d21f76bb9dbdfa=1559115557; Hm_lpvt_70e93e4ca4be30a221d21f76bb9dbdfa=1559115557',
            'Pragma': 'no-cache',
            'Cache-Control': 'no-cache'}
r = requests.post(url, data =data, headers = headers)
r.content
r.text

返回结果是

b'{"list":[],"pageinfo":"\xe6\x9a\x82\xe6\x97\xa0\xe6\x95\xb0\xe6\x8d\xae"}'
'{"list":[],"pageinfo":"暂无数据"}'

图片说明
请问怎么才能得到图中的信息?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 战渣渣 2019-05-30 09:15
    已采纳

    是因为你给的数据不足够,我刚才打开你的网站试了一下。

    header中必须有以下数据

    图片说明

    body中必须与以下数据

    图片说明

    结果如你所愿

    图片说明
    综合来看,你还是对于网站的分析不太够,header中的cookie以及body中的那几个参数应该是请求[http://jjhygl.hzfc.gov.cn/webty/gpfy/gpfySelectlist.jsp]的时候获得。所以需要先请求拿过来参数,第二步再请求这个地址。

    点赞 2 评论
  • cfy_lendy 2019-05-29 19:11

    确认下POST过去的数据对不对,先用模拟器测试下 data = {'page': 1}

    点赞 评论
  • waple_0820 2019-05-29 19:12

    你直接把url当做网址点进去看看就知道为什么了

    点赞 评论
  • eagle1024 2019-05-29 22:46

    这么多data信息 你就传个page?

    gply=1&wtcsjg=&jzmj=&ordertype=&fwyt=&hxs=&havepic=&xzqh=&secondxzqh=&starttime=&endtime=&keywords=&page=1&xqid=0&signid=ff80808166484c980166486b4e0b0023&threshold=ff80808166484c980166486b4e0b0021&salt=ff80808166484c980166486b4e0b0022&nonce=0&hash=0448c9b2298cc81d7e0b7a2ab77fcd9261f956537b0939664985b08a1bc4ce20
    
    点赞 评论
  • 幸福丶如此 2019-06-03 14:38

    应该是你headers问题,返回数据个好像事json格式的,你尝试将 "Content-Type": "application/json" ; charset=UTF-8', 试下

    点赞 评论
  • weixin_40297168 2019-06-05 15:53

    确认下POST过去的数据对不对,先用模拟器测试下 data = {'page': 1}

    点赞 评论

相关推荐 更多相似问题