yql和firebug xpath复制/粘贴返回没有结果

时间:2011-02-25 19:25:15

标签: authentication xpath jira httpresponse yql

我正在尝试对第三方供应商错误跟踪系统(jira)进行一些屏幕抓取,在那里我可以清除所有未解决的错误的计数/类别。我想把这些信息放在我们的内部网上,这样管理人员就可以看到它而无需前往第三方网站(他们没有登录凭据)。

但是我遇到了获取xpath结果的问题。这就是我正在做的事情。使用Firebug,我选择我感兴趣的DOM元素,然后右键单击“copy as xpath”。然后我将其粘贴到YQL控制台中,所以我有一些看起来像:

select * 
from html 
where url='http://username:password@jira.3rdparty.com/path/to/page_i_want.aspx'
      and xpath='//*[@id="primary"]'

我的JSON结果返回null。如果我在查询中删除xpath,我会得到结果。如果我在页面上选择其他元素,我的JSON结果将返回null。如果我开始调整xpath,比如删除路径中的最后一个div,我有时可以得到结果,这取决于我选择的内容以及我在xpath中调整的内容。

任何人都知道为什么我没有得到任何结果将Firebug副本作为xpath?我不能说我是一个xpath pro:)

编辑:实际上,看看我没有使用xpath的结果,看起来我没有进行身份验证。我的用户名中包含@和域名,因此我通过浏览器登录,例如:

  

用户名@域名

     

密码

YQL似乎不喜欢@domain而且\ escaping @似乎不起作用。有人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

只要满足以下条件,这将有效:

  

该模块仅获取1.5MB以下的HTML页面,该页面也必须是可索引的(例如,网站的robots.txt文件允许)。

由于它位于登录后面,因此可能无法编入索引。 robots.txt是公开的,例如:

http://internet.com/robots.txt

为了将来参考,请使用双引号来转义商业符号:

'http://"username@domain:password"@jira.3rdparty.com/path/to/page_i_want.aspx'

以下是一些资源: