我正在尝试使用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
答案 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