0

尝试阅读定价信息选项卡下的定价列表:

urlread( ' http://www.cefconnect.com/Details/Summary.aspx?Ticker=KYE#pricing ' )

但在 url '#pricing' 没有帮助。

有什么建议么?

4

2 回答 2

1

正如 Darin 已经指出的那样,添加#pricing到 URL 是没有用的。网页使用客户端技术在选项卡之间切换;不是可以使用的东西urlread

Summary.aspx始终将所有选项卡一起返回为一个大页面。在 Web 浏览器中打开时,CSS 和 JavaScript 使它看起来像一组选项卡。

使用 Web 浏览器的开发人员工具栏检查网页。例如,在 Google Chrome 中,只需右键单击您感兴趣的部分,然后选择“检查元素”。

我不知道您将如何处理 的结果urlread,但您可能需要进行一些解析以从 HTML 混乱中提取您需要的信息。

请注意Summary.aspx启动额外的 HTTP 请求以检索额外的数据。使用 Chrome 开发者工具栏的“网络”标签来分析这种行为。例如,在调整定价历史过滤条件后单击“开始”时会发出以下请求。

http://www.cefconnect.com/Resources/TableData/?Type=PricingHistory&Cusip=48660P104¶m0=1M¶m1=06/06/2014

起初,这似乎使整个事情复杂化,但它实际上可能是一个很好的机会。可以urlread通过上面的 URL 调用,获取一些 JSON 格式的数据,远没有 HTML 那么杂乱。调整参数以获得不同的数据。我不确定是什么48660P104;它可能是 KYE 的内部表示。您可能希望使用对 Summary.aspx 的初始 HTTP 请求来检索该代码;您会注意到网页上到处都是包含相同参数的 URL Cusip

于 2014-07-06T20:52:17.133 回答
0

#字符在 url 中具有特殊含义。它表示它fragment identifier后面的值永远不会发送到服务器。只有客户端 javascript 可以访问它。url encode如果要将其发送到服务器,则需要该值:

urlread( ' http://www.cefconnect.com/Details/Summary.aspx?Ticker=KYE%23pricing ' )

这也适用于其他特殊字符。您需要正确编码它们。

于 2014-07-06T19:36:28.390 回答