使用python刮取网页以获取onclick值

时间:2015-07-13 18:22:44

标签: javascript python onclick

首先,我要说:请耐心等待我,因为我不熟悉我要说明你的论点。

我想在法兰克福Boerse网站上下载一些股票的盘中历史价值。让我以此为例:http://www.boerse-frankfurt.de/en/equities/adidas+ag+DE000A1EWWW0/price+turnover+history/tick+data#page=1

正如您所看到的,有两种选择:法兰克福交易和Xetra交易。我喜欢下载后者。我试图抓取数据,但我对python的了解很差。

我如何选择'想要的onclick选项?

提前感谢您的回复。此致

Ps:为了您的信息,我注意到以下事实检查Xetra元素:当我转到下一页时它会改变值,如果我回来,那么值又是不同的。这里有一个例子:第1页第一次我得到了

a onclick="d39081344_fkt_set_par('6');d39081344_fkt_set_active(this);" class="brs_d39081344_li current last"

,然后我转到第2页,我得到了

a onclick="d51109535_fkt_set_par('6');d51109535_fkt_set_active(this);" class="brs_d51109535_li current last"
并回到第1页我得到
a onclick="d96086211_fkt_set_par('6');d96086211_fkt_set_active(this);" class="brs_d96086211_li current last"

1 个答案:

答案 0 :(得分:0)

诀窍是查看浏览页面时进行的调用。您的浏览器网络分析工具对此非常宝贵。当我从一个页面转到另一个页面时,会向' http://www.boerse-frankfurt.de/en/parts/boxes/history/_tickdata_full.m发送一个POST,其中包含有关该请求的数据。

然后目标是使用python复制并循环请求。这是让你入门的代码:

import requests
r = requests.post('http://www.boerse-frankfurt.de/en/parts/boxes/history/_tickdata_full.m', data={'component_id':'PREKOP97077bf9dec39f14320bf9d40b636c7c589', 'page':"3", 'page_size':'50', 'boerse_id':'6', 'titel':'Tick-Data', 'lang':'en', 'text':'LOcbaec84ecad1b94ad2fd257897c87361', 'items_per_page':'50', 'template':'0', 'pages_total':'50', 'use_external_secu':'1', 'item_count':'2473', 'include_url':'/parts/boxes/history/_tickdata_full.m', 'ag':'291', 'secu':'291', })
print r.text #here is your data of interest, it still needs to be parsed

这是一般的想法。然后,您可以将其放入循环中,每次向page参数添加一个。