python - 如何爬取带有日期选择的ajax网站?
伊谢尔伦
伊谢尔伦 2017-04-18 10:19:32
0
4
1292

需要爬取三峡水库的实时水情数据,可以在网页中选择日期显示水情信息,如果一天天选择再复制数据发现很是耗时,我现在需要将下图中三峡水利枢纽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...
但是按照回答并没能解决我的疑惑,因此在这里求助各位前辈,麻烦大家了

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(4)
伊谢尔伦

可以利用requests庫模擬post提交。 從遊覽器檢查工具可以看到傳的參數是time:2017-02-07。定義data={"time": 日期譬如2017-02-07}。 然後你可以寫個循環,循環一次日期往後加一天。然後就r = requests.post("url", data=data, header=****)。 取出資料儲存入庫。每次循環嫌慢的話,可以加上gevent這個協程庫加快速度,看你也就想抓2年的資料循環365*2次就OK了

伊谢尔伦

你已經看到了那個包含資料的請求,那麼你的問題是什麼呢?

迷茫

抓包,再模擬post或get
看看下面的內容
Python爬蟲聯想詞視頻和代碼
https://zhuanlan.zhihu.com/p/...

跟黃哥學Python爬蟲抓取代理IP和驗證。
https://zhuanlan.zhihu.com/p/...
跟黃哥學Python爬蟲抓取代理IP
https://zhuanlan.zhihu.com/p/...

洪涛

都已經拿到Json串了,數據更好拿了啊

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板