【问题标题】:Skipping web-pages with extension pdf, zip from crawling in Anemone跳过扩展名为 pdf、zip 从 Anemone 中爬行的网页
【发布时间】:2011-12-01 12:14:03
【问题描述】:

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

【问题讨论】:

    标签: ruby ruby-on-rails-3 ruby-on-rails-3.1 web-crawler anemone


    【解决方案1】:
    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
    

    【讨论】:

    • 你应该将你的正则表达式锚定到最后,否则像http://example.org/how-to-generate-pdf.html这样的url会被跳过。点也应该被转义。 ext = %w(pdf doc etc ...)anemone.skip_links_like /\.#{ext.join('|')}$/ 怎么样
    • 谢谢 Fabio,我现在就做这些更改。
    • 法比奥,如果我可以问你一个问题。如果您想创建一个正则表达式来跳过以数字结尾的 URL,例如 somewebsite.com/this/a/test?page=21095925,您将如何更改模式?
    • 看你的实际需要。对于以数字结尾的 url,您可以使用 /\d+$/,但这是非常通用的并且可以匹配很多东西,您可以通过强制在输入中出现 ? 来限制 /\?.*\d+$/,这更少一般,但您可以继续满足您的全部要求。你可以找到所有的修饰符和模式here 和一个好的测试者here
    • 谢谢大家。 @Sunny - 在您的海葵选项中添加 :skip_query_strings => true ,它将解决您的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-05-30
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 2017-05-07
    相关资源
    最近更新 更多