首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

开发垂直搜索遇到一些有关问题,跪求高人解答

2012-03-01 
开发垂直搜索遇到一些问题,跪求高人解答我在用heritrix开发一个给“大众点评网”定制的搜索引擎。我可以在自

开发垂直搜索遇到一些问题,跪求高人解答
我在用heritrix开发一个给“大众点评网”定制的搜索引擎。
我可以在自己的FrontierScheduler里面得到正确的url,但为什么无法成功下载页面的镜像html文件,只是得到了许多文件属性为文件的文件,我把FrontierScheduler贴出来:

Java code
package my.postprocessor;import java.util.logging.Logger;import org.archive.crawler.datamodel.CandidateURI;import org.archive.crawler.postprocessor.FrontierScheduler;public class FrontierSchedulerFordian extends FrontierScheduler {    private static Logger LOGGER = Logger.getLogger(FrontierSchedulerFordian.class.getName());    public FrontierSchedulerFordian(String name) {        super(name);    }    protected void schedule(CandidateURI caUri) {        String url = caUri.toString();        System.out.println("后去处理1"+url);        try {            if (url.indexOf("www.dianping.com/shop/") != -1                    || url.indexOf("www.dianping.com/search/category/16/10/g10") != -1                    || url.endsWith(".gif")                    || url.endsWith(".jpg")                    || url.endsWith(".jpeg")                    || url.indexOf("robots.txt") != -1                    || url.indexOf("dns:") != -1) {                System.out.println("后去处理2"+url);                if (url.indexOf("#") == -1) {                    getController().getFrontier().schedule(caUri);                }            } else {                return;            }        } catch (Exception e) {            e.printStackTrace();        } finally {        }    }}


真的不知道为什么,求高人指点@@


还有个小问题就是怎么样不被网站封ip啊,我今天爬数据的时候被网站给封了,说我访问网站速度过快,heritrix里面有没有什么比较特别的办法修补这个bug啊


[解决办法]
1.只是得到了许多文件属性为文件的文件
这句话不理解
2.getController().getFrontier().schedule(caUri);
只是选择你想要的URL让他们抓取,从你的代码来看:
所以你挑一些你想下载的URL用这个方法测试下看是否被它过滤掉了
3.被封IP很正常,毕竟现在爬虫泛滥。Heritrix可以配置代理,但一次只可以配置一个,同时代理的那个IP要保证速度和稳定,否则抓取很慢甚至抓取停止。
4.最好还是自己温柔抓取,Heritrix有相当好的机制来控制抓取速度。里面可以通过配置来管理你的抓取速度、宽带使用、抓取数量等
5.能说的只有这些,具体我博客里有些Heritrix的源码分析:http://guoyunsky.javaeye.com ,希望对你有用...

热点排行