如何利用Nokogiri在HTML中高效提取所有电子邮件地址?
- 内容介绍
- 文章标签
- 相关推荐
本文共计463个文字,预计阅读时间需要2分钟。
在Nokogiri的HTML代码中找到电子邮件地址,可以使用正则表达式。以下是一个示例代码:
rubyrequire 'nokogiri'require 'open-uri'
_content=open('http://example.com').readdoc=Nokogiri::HTML(_content)
email_regex=/[\w\.-]+@[\w\.-]+/emails=doc.xpath(//text()).map { |node| node.text.match(email_regex) }.flatten.compact
puts emails
这段代码首先获取网页内容,然后使用Nokogiri解析HTML。接着,定义一个正则表达式来匹配电子邮件地址,然后使用`xpath`查找所有文本节点,并应用正则表达式来提取电子邮件地址。最后,输出提取到的电子邮件地址。
如何在Nokogiri的 HTML代码中找到电子邮件地址?我想我需要使用正则表达式,但不知道如何.
示例代码
<html> <title>Example</title> <body> This is an example text. example@example.com </body> </html>
当有一个关于mail_to的href时,有一个答案覆盖案例,但这不是我的情况.电子邮件地址有时位于链接中,但并非总是如此.
谢谢
如果你只是试图从一个恰好是HTML的字符串中解析电子邮件地址,那么就不需要Nokogiri.html_string = "Your HTML here..." email_address = html_string.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i)[0]
这不是一个完美的解决方案,因为构成“有效”电子邮件地址的RFC非常宽松.这意味着您遇到的大多数正则表达式(包括上面的表达式)都不考虑边缘情况有效地址.例如,根据RFC
$A12345@example.com
是一个有效的电子邮件地址,但不会与上面的正则表达式匹配.
>推荐阅读:haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
>正则表达式来源:www.dzone.com/snippets/ruby-method-extract-emails
本文共计463个文字,预计阅读时间需要2分钟。
在Nokogiri的HTML代码中找到电子邮件地址,可以使用正则表达式。以下是一个示例代码:
rubyrequire 'nokogiri'require 'open-uri'
_content=open('http://example.com').readdoc=Nokogiri::HTML(_content)
email_regex=/[\w\.-]+@[\w\.-]+/emails=doc.xpath(//text()).map { |node| node.text.match(email_regex) }.flatten.compact
puts emails
这段代码首先获取网页内容,然后使用Nokogiri解析HTML。接着,定义一个正则表达式来匹配电子邮件地址,然后使用`xpath`查找所有文本节点,并应用正则表达式来提取电子邮件地址。最后,输出提取到的电子邮件地址。
如何在Nokogiri的 HTML代码中找到电子邮件地址?我想我需要使用正则表达式,但不知道如何.
示例代码
<html> <title>Example</title> <body> This is an example text. example@example.com </body> </html>
当有一个关于mail_to的href时,有一个答案覆盖案例,但这不是我的情况.电子邮件地址有时位于链接中,但并非总是如此.
谢谢
如果你只是试图从一个恰好是HTML的字符串中解析电子邮件地址,那么就不需要Nokogiri.html_string = "Your HTML here..." email_address = html_string.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i)[0]
这不是一个完美的解决方案,因为构成“有效”电子邮件地址的RFC非常宽松.这意味着您遇到的大多数正则表达式(包括上面的表达式)都不考虑边缘情况有效地址.例如,根据RFC
$A12345@example.com
是一个有效的电子邮件地址,但不会与上面的正则表达式匹配.
>推荐阅读:haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
>正则表达式来源:www.dzone.com/snippets/ruby-method-extract-emails

