ruby - Ruby 正则表达式的问题

标签 ruby regex web-crawler

我有这段 HTML 代码,它在一行中:

<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>

这是行友好的版本(我不能使用)

<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>
<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>

我正在尝试使用此正则表达式仅提取 URL

/<h3 class="r"><a href="(.*)">(.*)<\/a>/

它返回

www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com"

当找到 "时,我能做些什么来阻止它?

最佳答案

叹息。正则表达式和 HTML 是如此尴尬的同床异梦:

require 'nokogiri'

html = %q{<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>}
doc = Nokogiri::HTML(html)
puts doc.css('a').map{ |a| a['href'] }
# >> www.google.com
# >> www.google.com

这会找到它们,无论它们是深度嵌套还是全部在一行上。

关于ruby - Ruby 正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716787/

相关文章:

ruby-on-rails - 如何测试 Rails 引擎?

ruby - 如何使用每个元素从第二个元素开始在数组中循环? - ruby

python - 我将如何设计一个数据库来包含一组可与传入网址匹配的网址正则表达式(python)

wget - 通过wget命令抓取sitemap.xml的链接

web-scraping - 这种反抓取技术对于 Robots.txt Crawl-Delay 是否可行?

ruby-on-rails - Gem::Ext::BuildError:错误:无法构建 gem native 扩展 Bcrypt-Ruby

ruby-on-rails - Rails 中的胖模型 : How do I return hash (errors) or object (when success)

python - 在 re 包中使用日文定界符

javascript - 在 Javascript 中解析带有可变封闭字符的 CSV 字符串

apache - Apache Nutch重新启动爬网