使用Mechanize提取电子邮件地址

时间:2014-09-02 01:57:31

标签: ruby mechanize mechanize-ruby

我正在尝试使用mechanize从网站返回电子邮件地址。我很容易确定是否" @"使用下面的代码在页面上找到符号。

但是,我想返回@符号周围的字符,以确定它是否可能是电子邮件地址。任何人都知道在找到@后我可以如何返回周围的字符?

我知道mechanize可以返回链接,但电子邮件地址可能不是链接。谢谢!

require 'mechanize'

mechanize = Mechanize.new { |agent|
  agent.open_timeout   = 4
  agent.read_timeout   = 4
  agent.max_history = 0
  agent.follow_meta_refresh = true
  agent.keep_alive = false
}

website = ARGV[0]
keyword = "@"
page = mechanize.get(website)

if page.body.include?(keyword)
  puts "found \"#{keyword}\" on #{website}"
else
  puts "not found"
end

1 个答案:

答案 0 :(得分:0)

建立pguardario所说的内容,因为你想要在文本体中匹配一个模式,这实际上并不是一个与机械化相关的问题,因为你已经可以在页面上搜索你需要的信息。

相反,它是基于正则表达式的:

这样的东西
# Naive e-mail match regex, plenty out there to google though this might be enough
emails = /(\w+@+[\w\.]+)/.match page.body.to_s

emails.each do |email|
  puts email.to_s
end

正则表达式: http://rubular.com/r/PHNhUfyGaC