我正在尝试对第三方供应商错误跟踪系统(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 @似乎不起作用。有人有什么想法吗?
答案 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'
以下是一些资源: