【发布时间】:2016-10-19 14:21:10
【问题描述】:
我正在使用 Anemone 抓取一个大型网站,更糟糕的是,该网站在几个不同的语言版本上具有相同的内容。
主要语言有domain.com/,其他语言有domain.com/de/、domain.com/es/,所以我决定在抓取中排除这些语言,如下所示:
crawler = Anemone::Core.new('http://domain.com', opts = {skip_query_strings: true})
crawler.skip_links_like(/(.+com\/(fi|de|it|no|se|en-bm|dk|fr|ie|en-nz|es|int).*)|(\.(jpg|pdf|png|jpeg)$)/)
但是,当查看通过 on_every_page do |page| 块中的 puts page.url 抓取的内容时,我可以看到它仍在抓取所有许多语言变体。
我什至尝试过包含这个
crawler.focus_crawl{|page| page.links.reject{|i| !i.to_s.match(/(.+com\/(fi|de|it|no|se|en-bm|dk|fr|ie|en-nz|es|int).*)|(\.(jpg|pdf|png|jpeg)$)/).nil? }}
从要抓取的页面列表中的下一个考虑的内容中删除语言链接。
有什么建议吗?
【问题讨论】: