python - 如何爬取带有日期选择的ajax网站?

 php 发布于 2022-10-25 17:29

需要爬取三峡水库的实时水情数据,可以在网页中选择日期显示水情信息,如果一天天选择再复制数据发现很是耗时,我现在需要将下图中三峡水利枢纽2014年-2016年每天的数据爬下来。

网址如下:
http://www.ctgpc.com.cn/sxjt/...

通过浏览器自带的检查工具,右键检查元素,查看 network,查看调用的 ajax API 地址:初步分析后发现是通过ajax调用了以下网址,并用POST传递了一个日期数据,例如今天2017-02-15给该网址:
http://www.ctgpc.com.cn/eport...

Header如下:

Response如下:

之前有搜索到类似的问题:https://segmentfault.com/q/10...
但是按照回答并没能解决我的疑惑,因此在这里求助各位前辈,麻烦大家了

4 个回答
  • 都已经拿到Json串了,数据更好拿了啊

    2022-10-26 23:26 回答
  • 抓包,再模拟post或get
    看看下面的内容
    Python爬虫联想词视频和代码
    https://zhuanlan.zhihu.com/p/...

    跟黄哥学Python爬虫抓取代理IP和验证。
    https://zhuanlan.zhihu.com/p/...
    跟黄哥学Python爬虫抓取代理IP
    https://zhuanlan.zhihu.com/p/...

    2022-10-26 23:26 回答
  • 你已经看到了那个包含数据的请求,那么你的问题是什么呢?

    2022-10-26 23:27 回答
  • 可以利用requests库模拟post提交。 从游览器检查工具可以看到传的参数是time:2017-02-07。定义data={"time": 日期譬如2017-02-07}。 然后你可以写个循环,循环一次日期往后加一天。然后就r = requests.post("url", data=data, header=****)。 取出数据保存入库。每次循环嫌慢的话,可以加上gevent这个协程库加快速度,看你也就想抓2年的数据循环365*2次就OK了

    2022-10-26 23:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有