Nokogiri只找到入站链接

时间:2010-05-26 14:21:18

标签: screen-scraping nokogiri

我在http://somedomain.com/somedir/example.html

上有一个html文档

该文件包含四个链接:

http://otherdomain.com/other.html

http://somedomain.com/other.html

/only.html

的test.html

如何获取当前域中链接的完整网址?

我的意思是我应该得到:

http://somedomain.com/other.html

http://somedomain.com/only.html

http://somedomain.com/somedir/test.html

应忽略第一个链接,因为它与我的域

不匹配

2 个答案:

答案 0 :(得分:1)

这样的东西
doc.search("a").map do |a| 
  url = a.attribute("href")
  #this part could be a lot more robust, but you get the idea...
  full_url = url.match("^http://") ? url : "http://somedomain.com/#{url}"
end.select{|url| url.match("^http://somedomain.com")}

答案 1 :(得分:0)

使用正则表达式从href =“URL”中提取链接 然后如果它不以“http”

开头,则与域连接

这是一个Python示例:

import re
import urlparse

domain = ...
html = ...
links = re.findall('href=[\'"](.*?)[\'"]', html)
links = [urlparse.urljoin(domain, link) for link in links if link]