次の文字列を含む HTML ページ内のすべての text() を検索するための正しい xpath 式を探しています: @domain
左側の最初のスペースまで、右側の最初のスペースまで一致する抽出 -
メールアドレスを取得するだけです。
ありがとう
この Xpath クエリは、「@domain」を含むすべてのノードのテキストを取得します
//*[contains(text(), '@domain')]/text()
その後、テキストを解析して、Python を使用して電子メールを抽出できます。
>>> import re
>>> re.findall(r'[\w\.]+@domain\.[\w\.]+', 'this is our info: info@domain.co.uk')
['info@domain.co.uk']
アップデート:
スクレイピーの XPath セレクターにはre
methodがあるように見えますが、私は知りませんでした:
>>> hxs.select('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)')
[u'My image 1',
u'My image 2',
u'My image 3',
u'My image 4',
u'My image 5']