あなたは、XPathを使用してメールアドレスを抽出することができます。
セレクタ//a
は、ページ上の任意のa
タグを選択し、あなたが@
構文を使用してhref
属性を指定することができますので、//a/@href
はあなたのページ上のすべてのa
タグのhref
Sを与えます。
異なるURLタイプ(例:http://
urls)のページに可能な組み合わせのa
タグがある場合、xpath関数を使用して、選択したノードをさらに絞り込むことができます。 「MAILTO:」セレクタ
//a[starts-with(@href, \"mailto:\")]/@href
はあなたから始まるhref
属性を持つすべてのa
タグのhrefノードを与えます。
すべて一緒にこれを置くと、「MAILTO:」取り除くために少し余分なコードを追加し、属性値の開始から:
require 'nokogiri'
selector = "//a[starts-with(@href, \"mailto:\")]/@href"
doc = Nokogiri::HTML.parse File.read 'my_file.html'
nodes = doc.xpath selector
addresses = nodes.collect {|n| n.value[7..-1]}
puts addresses
テストファイルでは、次のようになります
を
<html>
<title>Example</title>
<body>
This is an example text.
<a href="mailto:[email protected]">Mail to me</a>
<a href="http://example.com">A Web link</a>
<a>An empty anchor.</a>
</body>
</html>
このコードは、希望する[email protected]
を出力します。 addresses
は、ドキュメント内のmailtoリンク内のすべての電子メールアドレスの配列です。
nokogiriを使用するには、電子メールフィールドのクラス/ IDを知りたいと思うでしょう。 – ScottJShea
HTMLのサンプルと試したコードを表示する必要があります。 HTMLなしでは、私たちが作る提案は全く役に立たない。コードでは、あなたが試したことを知ることができ、答えをコードに戻すのに役立ちます。 –