Ruby 从海葵中爬行跳过扩展名为pdf、zip的网页

Ruby 从海葵中爬行跳过扩展名为pdf、zip的网页,ruby,ruby-on-rails-3,ruby-on-rails-3.1,web-crawler,anemone,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Web Crawler,Anemone,我正在使用海葵宝石(Ruby-1.8.7和Rails 3.1.1)开发爬虫程序。我应该如何从爬网/下载中跳过扩展名为pdf、doc、zip等的网页。您应该将regexp锚定到末尾,否则会出现类似http://example.org/how-to-generate-pdf.html将被跳过。还应该转义圆点。怎么样ext=%w(pdf文档等)和anemone.skip\u links\u like/\。{ext.join(''124')}$/谢谢法比奥,我现在就做这些更改。法比奥,如果我可以问你一个

我正在使用海葵宝石(Ruby-1.8.7和Rails 3.1.1)开发爬虫程序。我应该如何从爬网/下载中跳过扩展名为pdf、doc、zip等的网页。

您应该将regexp锚定到末尾,否则会出现类似
http://example.org/how-to-generate-pdf.html
将被跳过。还应该转义圆点。怎么样
ext=%w(pdf文档等)
anemone.skip\u links\u like/\。{ext.join(''124')}$/
谢谢法比奥,我现在就做这些更改。法比奥,如果我可以问你一个问题的话。如果你想创建一个正则表达式来跳过一个以数字结尾的URL,比如说like,你会如何改变这个模式?这取决于你的实际需要。对于以数字结尾的url,您可以使用
/\d+$/
,但这是非常通用的,并且可以匹配很多东西,您可以通过强制输入中存在
来进行限制,如
/\?.\d+$/
,这不太通用,但您可以继续满足您的全部要求。你们可以找到所有的修改器和模式,还有一个很好的测试人员@Sunny-add:skip_query_strings=>true在你的海葵选项中,它会解决你的问题。
ext = %w(flv swf png jpg gif asx zip rar tar 7z gz jar js css dtd xsd ico raw mp3 mp4 wav wmv ape aac ac3 wma aiff mpg mpeg avi mov ogg mkv mka asx asf mp2 m1v m3u f4v pdf doc xls ppt pps bin exe rss xml)

Anemone.crawl(url) do |anemone|

    anemone.skip_links_like /\.#{ext.join('|')}$/

    ...

end