python - 如何使用 lxml 从此链接中抓取历史价格?

标签 python lxml

如何使用 Python lxml etree 从此链接抓取基金的历史价格:

http://www.aia.com.hk/en/individual/resources-guides/investment-information/underlying-funds-historical-prices/

各个基金页面的链接类似如下;但是,我不知道如何到达那里:

<a style="color:#AA231B;" href="javascript:void(0);" onclick="window.location='fund_search_content_new.jsp?fund=c04&amp;tier=sp_br&todate=&date=&name='">Aberdeen Global - Asia Pacific Equity Fund "A2"</a>

最佳答案

首先您需要获取包含链接的 iframe 的 url:

iframeurl = yourpage.xpath("//iframe[@id='myframe']/@src")

然后使用 lxml 下载/解析此框架,并从此处获取链接:

onclicks = lxml.html.parse(iframeurl[0]).xpath("//tr/td/a/@onclick")    

如果你想要里面的东西window.location='' ,我想你可以用子字符串/正则表达式完成这项工作...

map(lambda _: _.split("'", 2)[1], mylistofonclicks)

如果您想知道我是如何获得这些 XPath 的,在 Chrome 上您可以 ctrl+shift+i -> 右键单击​​节点 -> 复制 XPath,然后使用 $x("/my/path") 测试它们在控制台上。我还必须禁用 JavaScript(ctrl+shift+i -> 设置图标 -> 常规 -> 禁用 JavaScript)以阻止加载 iframe 时触发的自动重定向。

关于python - 如何使用 lxml 从此链接中抓取历史价格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21278144/

相关文章:

python - 如何在 Python 中解码 Base64 数据?

python解析xml以获取大于给定值的字符串

python - 用于提取节号和说明的正则表达式

python - bytes 没有 __bytes__ 方法

python - 如何从 Django Web 应用程序中在 linux shell 上启动 python 子进程命令?

python - 如何捕获 HTML,不受捕获库的干扰?

python - 如何使用 Python、Requests 和 Xpath 抓取网站?

python - 删除lxml中的img标签

xml - XSLT 模板不适用于所有使用 lxml 的元素

python - 'lxml.etree._Element' 对象没有属性 'write' ??? (PYTHON)