以下のようなhtmlの一部があります
<li><label>The Keyword:</label><span><a href="../../..">The text</a></span></li>
文字列「キーワード:テキスト」を取得したい。
Chrome inspect または FF firebug を使用して上記の html の xpath を取得し、次に hxs.select(xpath).extract() を取得し、html タグを削除して文字列を取得できることを知っています。ただし、xpath は異なるページ間で一貫していないため、このアプローチは十分に一般的ではありません。
したがって、私は以下のアプローチを考えています: まず、「The Keyword:」を使用して検索します。
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がわかっている場合、もちろん必要な文字列を取得できます。
スクレイピーな HtmlXPathSelector 以外のソリューションを受け入れます。(例えば、lxml.html にはもっと多くの機能があるかもしれませんが、私はそれにとても慣れていません)。
ありがとう。