当前位置 : 主页 > 编程语言 > ruby >

ruby – 收集* .txt文件的所有链接

来源:互联网 收集:自由互联 发布时间:2021-06-23
我需要检索 HTML文档中文本文件的所有链接,我不知道最好的方法是什么,但是,我在ruby中尝试了以下内容… line.scan(/a href="([\w+:\/.-]*.txt)/) 但我不确定这个表达式是否涵盖指向文本文件的所
我需要检索 HTML文档中文本文件的所有链接,我不知道最好的方法是什么,但是,我在ruby中尝试了以下内容…

line.scan(/<a href="([\w+:\/.-]*.txt)/)

但我不确定这个表达式是否涵盖指向文本文件的所有可能链接,我想知道是否有一些内置的正则表达式?或者如果有人知道更好的方法来检索巨大网页中文本文件的所有链接.

这将遍历HTML并找到所有扩展名为“.txt”的href:

#!/usr/bin/env ruby

require 'nokogiri'

html = <<EOT
<html>
  <head><title>foo</title></head>
  <body>
    <a href="file.txt">text file</a>
    <a href="file.jpg">jpg file</a>
    <a href="file2.txt">text file 2</a>
  </body>
</html>
EOT
doc = Nokogiri::HTML(html)
puts doc.search('a').select { |n| n['href'][/\.txt$/] }.map{ |n| n['href'] }

> file.txt
> file2.txt

它正在使用Nokogiri来解析内容,这比尝试使用正则表达式更加防弹.

网友评论