ctcxixi 2019-05-29 17:34 采纳率: 100%
浏览 3819
已采纳

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]的时候获得。所以需要先请求拿过来参数,第二步再请求这个地址。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 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
    
    评论
  • 7*24 工作者 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}

    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 k210显示failed init to model
  • ¥15 Evil-droid生成的APK手机已经下载但无法建立任务
  • ¥25 c语言韩信点兵的变式
  • ¥15 怎么根据书上的例子完成这个问题呢?
  • ¥15 ECharts 增加Zoom,整行包括右边的Text一起滑动
  • ¥15 关于网上一个easyx制作的见缝插针小游戏(c++)
  • ¥15 开地址法双散列函数处理碰撞
  • ¥15 想问一下这个是什么情况 虚拟机Linux打不开了
  • ¥15 联通光猫掉注册了怎么重新注册上去
  • ¥15 关于unity开发steamvr程序遇到的问题