想用python做股票量化交易,第一步就是取得股票的歷史數據。造訪http://data.eastmoney.com/sto...網頁,將網頁原始碼開啟後看不見表格中的數據,據說是利用ajax技術載入的。在網路上看到可以利用selenium和phantomJS來取得這些動態網頁內容,但卻不知道如何取得完整原始碼。請高手指點迷津
我想大声告诉你2017-05-18 11:03:14
事實上,我剛剛試了一下,頁面不是用xhr加載的,在頁面的源代碼中已經有了,然後調用了一個類把數據加載為一個table。
比如,首頁的數據:
然後,提取就直接使用re提取就可以了,得到文本以後json解析就好了。
先寫到這裡。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我嘗試了一下。
from urllib.parse import quote
import time
import requests
url = "http://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=FD&sty=TSTC&st={sortType}\
&sr={sortRule}&p={page}&ps={pageSize}&js=var {jsname}=(x){param}"
params = {
"sortType": 1,
"sortRule": 1,
"page": 2,
"pageSize": 50,
"jsname": "Aafdafgq", # 这里使用的是随机字符串,8位
"param": "&mkt=0&rt="
}
params["param"] += str(int(time.time()/30)) # 当前时间
url = url.format(**params)
url = quote(url, safe=":=/?&()")
req = requests.get(url)
req.text
给我你的怀抱2017-05-18 11:03:14
用這個組合 好處是簡單暴力,壞處是效率較低。
相當於打開一個你看不到的瀏覽器載入頁面,再把運算好的結果讀取。
新進蟲的話 推薦 python網路資料收集 這本動物書。
你需要的說明在採集動態頁面那章。
這書很薄 很實用。
巴扎黑2017-05-18 11:03:14
我對js和json都不太了解,剛剛爬蟲入門。經過你的提示,我再查看了一下原始碼,發現在defjson裡面有這些數據,不明白是怎麼把json裡的數據顯示到tbody裡面的。我用pandas的read_html可以抓到這些數據,但是最後兩列會遺失。看來我得先去看看js和json