在这个address我试图刮掉一个标签(即大胆红色的Larg价格)
我使用LIBXML 2.2
当我尝试通过此XPATH提取标签时
// * [@类= 'priceLarge']
它有效!
但为了让查询更容易,我想在Firefox上使用FireBug。
使用FireBug它给了我这个XPath
/ HTML /体/格[2] /形式/表[3] / tbody的/ TR / TD / DIV /表/ tbody的/ TR [2] / TD [2] /跨度/ B
使用这个Xpath它不起作用,似乎这个没有提供完整的查询。我怎样才能修改这个XPath来刮掉这个项目?
答案 0 :(得分:2)
Firefox和其他浏览器以HTML格式生成tbody
个标记。
实际上,tbody
可能不存在,因此您可以在XPath中删除它。 (/html/body/div[2]/form/table[3]/tr/td/div/table/tr[2]/td[2]/span/b
)您只需从应用程序中保存HTML并在文本编辑器中查看即可对此进行测试。
由于似乎意图是从网页中提取信息,但是如果您使用XPath较少依赖于树结构(即//b[@class='priceLarge']
),您的应用程序可能会更加抵制网页中的更改。
编辑:似乎除tbody
问题外,Firefox正在将div
(ID:divsinglecolumnminwidth)元素呈现为包含 form
元素(ID:handleBuy)。
使用XML编辑器查看html显示form
元素是div
元素的兄弟,因此表达式应以/html/body/form/table[3]
开头。
测试XPath表达式的其中一个工具是HAP Testbed。