2

我正在尝试将此页面上的当前合约价格转换为字符串:http ://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500.html

我真的很想要一个 python 2.6 解决方案。

使用 urllib 很容易获取页面 html,但似乎这个数字是实时的,而不是在 html 中。我检查了 Chrome 中的元素,它是一些 td 类的东西。

但我不知道如何用python解决这个问题。我尝试了beautifulsoup(但在几次尝试之后放弃让tar.gz 在我的Windows x64 系统上工作),然后是elementtree,但我的编程兴趣实际上是数据分析。我不是网站设计师,也不想成为一名网站设计师,所以这都是一门外语。这是实时价格 XML 吗?

感激地接受任何帮助。理想情况下是一个简单的安装模块和一些实际代码,但非常欢迎所有提示和技巧。

4

3 回答 3

2

看起来表格中的数字是由 Javascript 填充的,因此仅使用 urllib 或其他库获取 HTML 是不够的,因为它们不运行 javascript。您需要使用 PyQt 之类的库来模拟浏览器渲染页面/执行 JS 以填写数字,然后抓取其输出 HTML。

请参阅有关使用 PyQt 的博客文章:http: //blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/链接文本

于 2010-12-19T04:19:57.983 回答
1

如果您使用类似firebug的内容查看该网站,您可以看到它正在执行的 AJAX 调用。例如,初始值是用 AJAX 调用(至少对我来说)填充到:

http://www.cmegroup.com/CmeWS/md/MDServer/V1/Venue/G/Exchange/XCME/FOI/FUT/Product/ES?currentTime=1292780678142&contractCDs=,ESH1,ESM1,ESU1,ESZ1,ESH2,ESH1 ,ESM1,ESU1,ESZ1,ESH2

这将返回一个 JSON 响应,然后由 javascript 解析以填充表格。用 urllib 自己做这件事会很简单,然后使用 simplejson 来解析响应。

此外,您应该非常仔细地阅读本免责声明。 您正在尝试做的事情可能对网站所有者来说并不酷。

于 2010-12-19T16:49:43.833 回答
0

如果不知道号码来自哪里,很难知道该告诉你什么。它也可以是 php 或 asp,所以你必须弄清楚数字是哪种语言。

于 2010-12-19T04:05:49.177 回答