读取文件时从十个url中查找所有链接



如何从页面中读取文件时提取<a>标记中的所有href选项?

如果我有一个包含目标url的文本文件:

http://mypage.com/1.html
http://mypage.com/2.html
http://mypage.com/3.html
http://mypage.com/4.html

下面是我的代码:

File.open("myfile.txt", "r") do |f|
  f.each_line do |line|
    # set the page_url to the current line 
    page = Nokogiri::HTML(open(line))
    links = page.css("a")
    puts links[0]["href"]
  end
end

我会把它翻过来。我将首先解析文本文件并将每一行加载到内存中(假设它是一个足够小的数据集)。然后为您的HTML文档创建一个Nokogiri实例,并提取出所有href属性(就像您正在做的那样)。

类似这样的未经测试的代码:

links = []
hrefs = []
File.open("myfile.txt", "r") do |f|
  f.each_line do |line|
    links << line
  end
end

page = Nokogiri::HTML(html)
page.css("a").each do |tag|
  hrefs << tag['href']
end
links.each do |link|
  if hrefs.include?(link)
    puts "its here"
  end
end

如果我想做的只是输出每个<a>的'href',我会这样写:

File.foreach('myfile.txt') do |url|
  page = Nokogiri::HTML(open(url))
  puts page.search('a').map{ |link| link['href'] }
end

当然<a>标签不必有'href',但puts不会在意。

相关内容

  • 没有找到相关文章

最新更新