很多网站都有多语言版本,站长往往希望baidu爬虫爬中文页面,而google爬虫爬英文页面。于是,如果网站如以nginx做前端的话,站长往往会在nginx.conf中设置http头的accept-language,让爬虫重定向到指定语言页面进行抓取。但是事与愿违,google和baidu爬虫不设置http头的accept-language,导致爬虫抓取的是web.xml指定的默认页面。这样,baidu抓取中文页面,google抓取英文页面就无法同时达到。
http://www.findmaven.net 是博主的网站,是一个findjar和findmaven的搜索引擎,可以根据class名或者jar名找到包含它的jar和maven gav,以这个网站打比方

博主这样设置
1)网站的web.xml中默认页面还是设置为index_en.jsp英文页面
2)设置nginx的user_agent
if ($http_user_agent ~* (baidu|360|sogou)){
set $lang "/index_cn.jsp";
}
如果是baidu,360,sogou爬虫的话,重定向到index_en.jsp抓取中文页面;如果是google爬虫,则抓取默认页面index_en.jsp英文页面
设置后结果如下



本文介绍了一种通过设置nginx的user_agent来引导不同搜索引擎爬虫抓取相应语言页面的方法。例如,对于百度等中文搜索引擎,网站会将其重定向至中文页面;而对于Google等英文搜索引擎,则保持在英文页面。
1975

被折叠的 条评论
为什么被折叠?



