您可以使用XPath提取電子郵件地址。
的選擇//a
將選擇頁面上的任何a
標籤,您可以指定使用@
語法href
屬性,因此//a/@href
會給你href
S中的網頁上的所有a
標籤。
如果頁面上有多種可能的a
標籤與不同的url類型(例如http://
url)混合使用,您可以使用xpath函數來進一步縮小所選節點的範圍。選擇
//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,你會想知道電子郵件字段的類/標識。 – ScottJShea 2012-02-29 01:14:33
您需要展示您的HTML樣本,以及您嘗試過的代碼。沒有HTML,我們所做的任何建議都是毫無價值的。代碼讓我們知道您嘗試過的內容,並幫助我們將答案回覆到您的代碼中。 – 2012-02-29 01:51:10