我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)$)/)
但是,当查看通过块puts page.url
中的 a 抓取的内容时,on_every_page do |page|
我可以看到它仍在抓取所有许多语言变体。
我什至试图包括这个
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? }}
从要抓取的页面列表中的下一个考虑的内容中删除语言链接。
有什么建议么?