从Google Finance获取超出API范围的财务数据
谷歌的财经API不完整——在一些页面上的很多数据,比如:
http://www.google.com/finance?fstype=ii&q=NYSE:GE
通过这个API是获取不到的。
我需要这些数据来根据格林布拉特的公式对加拿大股票市场的公司进行排名,相关信息可以通过谷歌搜索“greenblatt index scans”找到。
我的问题是:访问和处理这些网页上的数据,最聪明、最简洁、最有效的方法是什么?在这种情况下,真的需要繁琐的方法吗?如果需要,最好的做法是什么?我目前正在学习Python,准备做与这个项目相关的工作。
3 个回答
0
抓取网页总是让人头疼,但我建议你可以先把网页转换成xml格式(可以用tidy或者其他HTML转XML的工具),然后再用xpath来浏览你感兴趣的节点。
3
BeautifulSoup 是用Python解析HTML的推荐工具。
你有没有考虑过除了谷歌以外的其他选择,比如雅虎财经的API?
4
你可以试着问问谷歌,看看能否提供缺失的API。否则,你就只能使用屏幕抓取,这可不是个好玩的事情,容易出问题而且不提前通知你,而且很可能违反谷歌的服务条款。
不过,如果你还是想写一个屏幕抓取程序,结合mechanize和BeautifulSoup是个不错的选择。BeautifulSoup是一个用来解析HTML的工具,而mechanize是一个基于Python的网页浏览器,它可以让你登录、存储cookies,并且像其他网页浏览器一样进行浏览。