抓取目標:
url:http://webapi.cninfo.com.cn/#/marketDataDate 數據目標: 獲取 證券代碼 證券簡稱 交易日期 開盤價 最高價 最低價 收盤價 成交數量 難點: 請求頭參數mcode 加密生成
使用第三方庫:
1. requests 2. execjs 3. js2py 4. math 5. time 6. pandas
工具:
1. 谷歌瀏覽器 2. pycharm 3. python3.7
頁面分析:
進入頁面,鼠標右擊,選擇檢查 -> 彈出瀏覽器開發者工具 -> Netword -> 選擇xhr -> 刷新頁面
找到接口,觀察接口數據情況:
此接口為post請求,需要提交兩個表單參數。
代碼片段:
請求成功, 但是有時效性的問題,等過了幾分鍾后,就無權限訪問了,仔細觀察發現特殊參數mcode。
開始JS找加密參數生成位置: (注意需要重新刷新頁面,不然會出現沒有js情況)
問題來了,好幾個js文件,怎么確定那個是我們需要的?
使用第二種搜索方式,根據url的請求地址搜索:
打上斷點后 直接刷新頁面 開始調試
繼續調試,看看這個missjson是干啥的。
下面把這些js扣下來執行
完整代碼