我想从网站中提取会员主页网站链接。 看起来像这样
<a href="http://www.ptop.se" target="_blank">
我用它测试了这个网站
<a href="(.*?)" target="_blank">
代码
require 'open-uri'
url = "http://itproffs.se/forumv2/showprofile.aspx?memid=2683"
open(url) { |page| content = page.read()
links = content.scan(/<a href="(.*?)" target="_blank">/)
links.each {|link| puts #{link}
}
}
如果你运行它,它不起作用。为什么不?
答案 0 :(得分:2)
我建议你使用一个好的ruby HTML / XML解析库,例如Hpricot或Nokogiri。
如果您需要登录该网站,您可能会对WWW::Mechanize等图书馆感兴趣。
代码示例:
require "open-uri"
require "hpricot"
require "nokogiri"
url = "http://itproffs.se/forumv2"
# Using Hpricot
doc = Hpricot(open(url))
doc.search("//a[@target='_blank']").each { |user| puts "found #{user.inner_html}" }
# Using Nokogiri
doc = Nokogiri::HTML(open(url))
doc.xpath("//a[@target='_blank']").each { |user| puts "found #{user.text}" }
答案 1 :(得分:1)
您的代码有几个问题
这是可行的:
require 'open-uri'
url = "http://itproffs.se/forumv2/"
open(url) do |page|
content = page.read()
content.scan(/<a href="(.*?)" target="_blank">/) do |match|
match.each { |link| puts link}
end
end
我确信,有更好的方法可以做到这一点。但这应该有用。
希望有所帮助