python - 如何爬取帶有日期選擇的ajax網站?
問題描述
需要爬取三峽水庫的實時水情數據,可以在網頁中選擇日期顯示水情信息,如果一天天選擇再復制數據發(fā)現很是耗時,我現在需要將下圖中三峽水利樞紐2014年-2016年每天的數據爬下來。
網址如下:http://www.ctgpc.com.cn/sxjt/...
通過瀏覽器自帶的檢查工具,右鍵檢查元素,查看 network,查看調用的 ajax API 地址:初步分析后發(fā)現是通過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}。 然后你可以寫個循環(huán),循環(huán)一次日期往后加一天。然后就r = requests.post('url', data=data, header=****)。 取出數據保存入庫。每次循環(huán)嫌慢的話,可以加上gevent這個協程庫加快速度,看你也就想抓2年的數據循環(huán)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串了,數據更好拿了啊
相關文章:
1. java固定鍵值轉換,使用枚舉實現字典?2. php自學從哪里開始?3. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了4. MySQL客戶端吃掉了SQL注解?5. python小白的基礎問題 關于while循環(huán)的嵌套6. css3 - [CSS] 動畫效果 3D翻轉bug7. javascript - JS設置Video視頻對象的currentTime時出現了問題,IE,Edge,火狐,都可以設置,反而chrom卻...8. 求大神幫我看看是哪里寫錯了 感謝細心解答9. phpstady在win10上運行10. javascript - 百度echarts series數據更新問題
