从 Google Finance 获取超出 API 范围的财务数据
Google 的金融 API 并不完整 - 页面上的许多数字例如:
http://www.google.com/finance?fstype=ii&q=NYSE:GE
无法通过 API 访问。
我需要这些数据根据 Greenblatt 公式对加拿大证券交易所的公司进行排名,可通过谷歌搜索“greenblatt 指数扫描”获得。
我的问题:访问和处理这些网页上的数据的最智能/干净/有效的方式是什么。 在这种情况下,这种乏味的方法真的有必要吗?如果有的话,最好的方法是什么? 我目前正在为与此相关的项目学习 Python。
Google's finance API is incomplete -- many of the figures on a page such as:
http://www.google.com/finance?fstype=ii&q=NYSE:GE
are not available via the API.
I need this data to rank companies on Canadian stock exchanges according to the formula of Greenblatt, available via google search for "greenblatt index scans".
My question: what is the most intelligent/clean/efficient way of accessing and processing the data on these webpages. Is the tedious approach really necessary in this case, and if so, what is the best way of going about it? I'm currently learning Python for projects related to this one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试要求 Google 提供缺少的 API。 否则,您将陷入屏幕抓取,这一点也不有趣,很容易在没有通知的情况下崩溃,并且可能违反了 Google 的服务条款。
但是,如果您仍然想编写屏幕抓取工具,那么很难击败 mechanize 和BeautifulSoup。 BeautifulSoup 是一个 HTML 解析器,而 mechanize 是一个基于 Python 的 Web 浏览器,可让您登录、存储 cookie 以及像任何其他 Web 浏览器一样进行导航。
You could try asking Google to provide the missing APIs. Otherwise, you're stuck with screen scraping, which is never fun, prone to breaking without notice, and likely in violation of Google's terms of service.
But, if you still want to write a screen scraper, it's hard to beat a combination of mechanize and BeautifulSoup. BeautifulSoup is an HTML parser and mechanize is a Python-based web browser that will let you log in, store cookies, and generally navigate around like any other web browser.
BeautifulSoup 将是使用 Python 解析 HTML 的首选方法
除了 Google 之外,您是否还研究过其他选项(例如雅虎财经 API)?
BeautifulSoup would be the preferred method of HTML parsing with Python
Have you looked into options besides Google (e.g. Yahoo Finance API)?
抓取网页总是很糟糕,但我建议将它们转换为 xml(通过 tidy 或其他一些 HTML -> XML 程序),然后使用 xpath 遍历您感兴趣的节点。
Scraping web pages always sucks, but I would recommend converting them to xml (via tidy or some other HTML -> XML program) and then using xpath to walk the nodes that you are interested in.