我已经到了使用 Javascript 和 Python3 在网络抓取网页上进入混战的地步。我很清楚我的靴子可能会碰到一匹死马,但无论如何我还是想画出我的六射手。这是一部意大利式西部片;做我的灰帽子?
::背景故事::
我正在使用 Python 3.2.3。
我有兴趣收集 YTD、1 年、3 年、5 年 10 年......和/或用户定义的股票、etf 或共同基金。我将我的网站设置在 Morningstar.com 上,因为它们倾向于提供尽可能多的数据,而无需登录;Finance.google.com &c 等其他人在他们提供的关于股票、etfs 和共同基金的数据方面往往不一致。
使用晨星来获取这些历史数据,或者他们称之为“追踪总回报”的权衡是,为了生成这些数据,他们使用了 Javascript。
以下是晨星的一些示例链接:
我对 Javascript 生成的图表中的“尾随回报”部分、顶行左右的数字感兴趣。
::到目前为止尝试过::
我已经确认 wget 不能使用 Javascript;即使下载所有相关文件 [css, .js, &c] 也不允许我在浏览器或脚本中本地呈现 javascript。StackOverflow 上的研究证实了这一点。我愿意在这里纠正。
我的研究告诉我,Python3 不存在 Mechanize。无论如何我都试过了,然后变成了警察沙威,大声喊道:“我知道!” 在错误消息“模块不存在”。
::我听说过...::
->硒。但是,我的理解是,这需要你最喜欢的浏览器实际打开一个网页,四处导航,然后不关闭,因为 Selenium 没有“关闭此选项卡//窗口”命令//选项。如果我//my_user 想要获取许多 etf、股票和/或共同基金的历史数据怎么办?这是在浏览器中打开的很多选项卡//窗口,不一定希望打开。
->httplib2. 我认为这很好,但我怀疑它是否会与 Javascript 一起使用。例如,是否使用 .cache 和 get 选项?
import httplib2
conn = httplib2.Http(".cache")
page = conn.request(u"http://the_url","GET")
- >风车。见“硒”。然而,我唱得不够调调,无法唱“Man of La Mancha”。
->谷歌的网页抓取代码。尝试下载包含 Javascript 的页面会导致...积极的结果吗?
我读过关于必须“在没有浏览器的情况下模拟浏览器”的喋喋不休。听起来像机械化,但不是我目前理解的 Python3。
::我的问题::
有任何建议、指示、解决方案或“看这里”的指示吗?
非常感谢,
迈尔斯,尘土飞扬的沙漠村民。