使用 python 抓取网页以获取点击值

Scraping a webpage with python to get onclick values

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

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

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

如何 'select' 想要的 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"

诀窍是查看在浏览页面时进行了哪些调用。您浏览器的网络分析工具对此非常有用。当我从一个页面转到另一个页面时,POST 会生成一个包含请求数据的 http://www.boerse-frankfurt.de/en/parts/boxes/history/_tickdata_full.m

然后目标是使用 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 参数。