python - 如何爬取帶有日期選擇的ajax網站?
問題描述
需要爬取三峽水庫的實時水情數據,可以在網頁中選擇日期顯示水情信息,如果一天天選擇再復制數據發現很是耗時,我現在需要將下圖中三峽水利樞紐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...但是按照回答并沒能解決我的疑惑,因此在這里求助各位前輩,麻煩大家了
問題解答
回答1:可以利用requests庫模擬post提交。 從游覽器檢查工具可以看到傳的參數是time:2017-02-07。定義data={'time': 日期譬如2017-02-07}。 然后你可以寫個循環,循環一次日期往后加一天。然后就r = requests.post('url', data=data, header=****)。 取出數據保存入庫。每次循環嫌慢的話,可以加上gevent這個協程庫加快速度,看你也就想抓2年的數據循環365*2次就OK了
回答2:你已經看到了那個包含數據的請求,那么你的問題是什么呢?
回答3:抓包,再模擬post或get看看下面的內容Python爬蟲聯想詞視頻和代碼https://zhuanlan.zhihu.com/p/...
跟黃哥學Python爬蟲抓取代理IP和驗證。https://zhuanlan.zhihu.com/p/...跟黃哥學Python爬蟲抓取代理IPhttps://zhuanlan.zhihu.com/p/...
回答4:都已經拿到Json串了,數據更好拿了啊
相關文章:
