我是XPath的新手。我有一个html的网页来源
http://london.craigslist.co.uk/com/1233708939.html
现在我想从上面的页面中提取以下数据
我还想在页面上找到“回复此帖子”按钮的存在
http://sfbay.craigslist.org/sfc/w4w/1391399758.html
任何人都可以帮我编写上述三个数据的三个XPath表达式。
答案 0 :(得分:5)
你不需要自己写这些,甚至自己弄清楚。如果您使用Firebug插件,请转到页面,右键单击所需的元素,单击“Inspect element”,Firebug将在浏览器底部的查看器中弹出HTML。右键单击HTML查看器中的所需元素,然后单击“复制XPath”。
那就是说,你正在寻找的(#3)XPath表达式是:
/ HTML /体/格[4] /形式/按钮
......通过上述方法获得。
答案 1 :(得分:4)
我注意到DTD是第一个链接的HTML 4/01 Transitional而不是XHTML,因此无法保证这是一个有效的XML文档,并且XML解析器可能无法正确加载它。事实上,我看到几个未正确关闭的标签(即< hr>等)
我不知道第一个是第一个,第三个只是Alex回答,但第二个是/ html / body / a [0]。
答案 2 :(得分:1)
从你的第一页开始,这是不可能的,因为这不是xpath的工作方式。为了使xpath表达式选择“某事物”必须是节点(即元素)的东西
第二页相当简单,但为了做到这一点你需要一个“id”属性(或任何可以确保你的按钮是唯一的)。例如,如果您确定文本“回复此帖子”正确识别按钮,则只需执行以下操作
//button["Reply to this post"]