我是xpath的新手,请耐心等待。目前,我正在寻找使用scrapy刮一些内容了一些网页,内容看起来是这样的:scrapy xpath帮助需要
<td colspan="3" valign="top" class="regular">Landsize: 84,000sq with an extensive shoreline 750m<br />
<br />
Call Or Email for more info<br />
. Full-length Olympicpool,children pool,jacuzzi<br />
\' Landscapesdkey bridges<br />
. 2 tennis courts<br />
. water features True seafront development with iconic design by architect Daniel Libeskind<br />
lconic residential, located less than\' 150 metres from the shoreline<br />
<br />
opposite the future integrated resort on sentosa Island.<br />
A part of keppel Bay world calss water front precinct with luxury homes.<br />
<br />
Call or email for more info </td>
具体来说,我用以下hxs.select('//tr[contains(td,"Description")]/following-sibling::tr[1]/td/text()').extract()
然而,这样做会由于内容被<br>
分隔,因此将结果项目分成列表。如果我从xpath中排除text()
,则<td>
元素将包含在所得字符串中,这是不可取的。
在xpath中有没有一种方法可以确保我的结果字符串是上面显示的但没有td标签的所有内容?我希望我不需要手动回加列表<br/>
其实我只是想留住
,但希望删除。 – goh
@iws:那么你想要的是不可能实现评估一个XPath表达式 - XPath是一个* query *语言的XML - 因此它只是*选择*节点集并且从不删除或修改节点。使用XPath,您可以只获取元素的字符串值(根本不包含后代节点),或者如果您想获取其子节点,则这些元素中的元素将具有其所有子元素/子元素。 –