XPath表达式

XPath表达式,xpath,Xpath,我不熟悉XPath。我有一个网页的html源代码 http://london.craigslist.co.uk/com/1233708939.html 现在我想从上面的页面中提取以下数据 完整日期 电子邮件-仅在日期下方 我还想在页面上找到“回复此帖子”按钮的存在 http://sfbay.craigslist.org/sfc/w4w/1391399758.html 有人能帮我为上述三个数据编写三个XPath表达式吗。您不需要自己编写,甚至不需要自己解决。如果您使用Firebug插件,请转

我不熟悉XPath。我有一个网页的html源代码

http://london.craigslist.co.uk/com/1233708939.html 
现在我想从上面的页面中提取以下数据

  • 完整日期
  • 电子邮件-仅在日期下方
  • 我还想在页面上找到“回复此帖子”按钮的存在

    http://sfbay.craigslist.org/sfc/w4w/1391399758.html
    

    有人能帮我为上述三个数据编写三个XPath表达式吗。

    您不需要自己编写,甚至不需要自己解决。如果您使用Firebug插件,请转到页面,右键单击所需元素,单击“检查元素”,Firebug将在浏览器底部的查看器中弹出HTML。右键单击HTML查看器中所需的元素,然后单击“复制XPath”

    也就是说,您要寻找的XPath表达式(对于#3)是:

    /html/body/div[4]/form/button


    …通过上述方法获得。

    从第一页开始,这是不可能的,因为xpath不是这样工作的。为了让xpath表达式选择“某物”必须是节点(即元素)的某物
    第二个页面相当简单,但是您需要一个“id”属性来实现这一点(或者任何可以确保按钮唯一性的东西)。例如,如果您确定文本“回复此帖子”正确识别按钮,只需使用

    //按钮[“回复此帖子”]

    我注意到DTD是HTML 4/01过渡版,而不是第一个链接的XHTML,因此无法保证这是一个有效的XML文档,而且XML解析器可能无法正确加载它。事实上,我看到几个标签没有正确关闭(例如
    ,等等)


    我现在还不知道第一个问题,第三个问题是Alex刚刚回答的,但第二个问题是/html/body/a[0]。

    除了ristonj的回答之外,还有很多Ruby、Java的html清理程序,可以转换SGML文档(如HTML4.01)要以编程方式刮取页面,可以首先运行的XML。是的。我正在通过java程序抓取页面。首先,我获取页面的html源代码,然后想使用“regex”或“xpath”来获取所需的信息。如何使用HTML清理器将字符串格式的HTML源转换为SGML文档。有没有外部的图书馆。如果是,请告诉我jar文件的下载URL。主要关注的是程序的速度。@Yatendra Goel:我在过去的项目中使用WebHarvest库()取得了巨大的成功。我建议你从那里开始。它允许您在随后运行的配置文件中声明性地定义刮刀,而不必“手动”在自己编写的代码中刮刀页面。然后,您可以将刮取的值存储在变量中,并检索它们以便在代码中使用,这比您目前所做的要容易得多。