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

Fle*_*seo 3 ruby regex

我需要检索HTML文档中文本文件的所有链接,我不知道最好的方法是什么,但是,我在ruby中尝试了以下内容...

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

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

the*_*Man 6

这将遍历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
Run Code Online (Sandbox Code Playgroud)

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