用XPath(或其他)描述大块文本的div

时间:2016-02-03 22:28:01

标签: python html xpath xhtml lxml

给定一个页面this,有两个作业(我们暂时忽略'打开应用程序'),一个接一个地完全描述,我正在寻找一种可靠的方法来提取各个工作规范。第一个目标是提取规范,然后希望将它们包装在一些封闭的HTML标记中,以便在保存为HTML文件时在浏览器中呈现。

enter image description here

显然,如果我提前知道顶级div的类名称为“jobitem”,我可以运行一个简单的XPath,如//div[@class='jobitem']

虽然会有几个这样的网站(设计差异很大,但所有的工作规格都是一个接一个地列出),而且我的程序不会有这样的类名知识的奢侈提前。我的程序知道的一件事:工作标题的绝对和相对位置(<h2><h3>等)。换句话说,我将运行如下查询:

//*[self::h2 or self::h3 or self::h4][contains(., 'Country Manager')]

...生成一个Python lxml XPath对象数组,然后可以从中执行相对的XPath。也许这些知识是抓住每个标题之间所有文本的起点?

1 个答案:

答案 0 :(得分:1)

  

&#34; ...生成一个Python lxml XPath对象数组,然后可以从中执行相对的XPath。也许这些知识是抓住每个标题之间所有文本的起点?&#34;

当然(如果我理解正确的话),此时使用相对XPath中的following-sibling轴可以直接执行任务:

following-sibling::div