Ruby - 即使在多行上也试图抓住<title>这里</title>

时间:2014-03-21 15:15:34

标签: ruby-on-rails

目前,我正在使用以下方法获取标题:

title = html_response[/<title[^>]*>(.*?)<\/title>/,1]

这是一个很好的工作,从这是一个标题来抓住“这是一个标题”。但是,有一些网页在一行上打开标题标签,在下一行打印标题,然后关闭标题标签。

我上面提到的红宝石系列没有捕捉到那些标题,所以我只是想找到一个解决方案。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

This famous stackoverflow post解释了为什么使用正则表达式解析HTML是个坏主意。更好的方法是使用像Nokogiri这样的gem来解析标题标记。

答案 1 :(得分:1)

强制性不要将正则表达式与HTML句子一起使用。

title = html_response[/<title[^>]*>(.*?)<\/title>/m,1]

m启用多线模式。