0

私は以下のようなhtmlの一部を持っています

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

文字列「キーワード:テキスト」を取得したい。

ChromeinspectまたはFFfirebugを使用して上記のhtmlのxpathを取得し、次にselect(xpath).extract()を使用して、htmlタグを削除して文字列を取得できることを知っています。ただし、xpathは異なるページ間で一貫していないため、このアプローチは十分に一般的ではありません。

したがって、私は以下のアプローチを考えています。まず、(lxml.htmlで同じことを行う方法がわからないため、コードはスクレイプなHtmlXPathSelector用です)を使用して「TheKeyword:」を検索します。

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がわかっている場合は、もちろん、必要な文字列を取得できます。

私はlxml.html以外の解決策を受け入れています。

ありがとう。

4

2 に答える 2