私は以下のような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以外の解決策を受け入れています。
ありがとう。