【发布时间】:2015-12-03 10:01:57
【问题描述】:
使用 import.io,给定以下 sn-p,在成功提取 name 和 time 列之后,如何使用 XPath 提取最近的前面 .heading 元素作为第三列?
...
<div class="row-fluid">
<div class="heading">HBO</div>
</div>
<div class="row-fluid">
<div class="name">Silicon Valley</div>
<div class="time">9pm</div>
</div>
<div class="row-fluid">
<div class="name">The Wire</div>
<div class="time">10pm</div>
</div>
...
<hr>
<div class="row-fluid">
<div class="heading">ABC</div>
</div>
<div class="row-fluid">
<div class="name">Lost</div>
<div class="time">9pm</div>
</div>
<div class="row-fluid">
<div class="name">Heroes</div>
<div class="time">10pm</div>
</div>
...
<hr>
...
【问题讨论】:
-
最近的前面或后面的
.heading元素? -
@stribizhev 在匹配数据之前的最近元素,具有“标题”类。
-
我删除了你的正则表达式(希望你能原谅我的坦率)。 Never ever use regular expressions to process (X)HTML。此外,即使它有一个答案,它也会涉及更适合不同问题的相互冲突的主题。
-
试试
//div/div[@class='name']/parent::div/preceding-sibling::div/div[@class='heading']/text()。在xpathtester.com/xpath 测试。请检查。 -
我刚要发帖
./parent::div/preceding-sibling::div/div[@class='heading']/text(),但我猜你有一个更广泛的答案。
标签: xpath screen-scraping import.io