2012-12-22 88 views
0

确定的XPath我有一个像下面scrapy HtmlXPathSelector通过搜索关键字

<li><label>The Keyword:</label><span><a href="../../..">The text</a></span></li> 

我想要得到的字符串“关键词:文本” HTML的一部分。我知道我可以使用Chrome浏览器或FF萤火虫,然后hxs.select(xpath).extract()获得上述html的xpath,然后剥离html标签以获取字符串。但是,由于xpath在不同的页面之间不一致,因此该方法不够通用。

因此,我在下面的方法思考: 首先,搜索关键字 “:” 使用

hxs = HtmlXPathSelector(response) 
hxs.select('//*[contains(text(), "The Keyword:")]') 

什么时候pprint我得到一些回报:

>>> pprint(hxs.select('//*[contains(text(), "The Keyword:")]')) 
<HtmlXPathSelector xpath='//*[contains(text(), "The Keyword:")]' data=u'<label>The Keyword:</label>'> 

我的问题是如何获得想要的字符串:“关键字:文本”。我正在考虑如何确定xpath,如果xpath已知,那么我当然可以得到想要的字符串。

我对除scrapy HtmlXPathSelector以外的任何解决方案都开放。 (例如lxml.html可能有更多的功能,但我对它很新颖)。

谢谢。

+0

可能重复(http://stackoverflow.com/questions/14004623/lxml-html-extract-a-string-用的搜索换一个关键字) –

回答

0

如果我正确地理解你的问题,“跟随兄弟姐妹”就是你正在寻找的东西。

//*[contains(text(), "The Keyword:")]/following-sibling::span/a/text() 

Xpath Axes

的[lxml.html通过搜索关键字提取字符串]