随笔分类 -  搜索引擎

摘要:ZeroCrawler V0.1是一只简单的多线程爬虫,其基本架构如下: 整个程序是这样运作的:Scheduler不断从Queue取出URL,如果发现可用的爬虫(空闲线程),那么就将URL分给一只爬虫。然后爬虫完成下载网页,抽取URL,保存网页的工作后就回归Scheduler(变回空闲线程)。直到Queue没有待爬取的URL,并且所有爬虫都空闲下来,就停止程序。 Scheduler的主要工作就是建立线程池,从Queue中取出URL,分配URL给线程。容易出错的地方是退出条件。如果只是判断Queue为空就退出是不行的。因为这时可能还有爬虫在工作中,而它可能提取到新的URL加到Que... 阅读全文
posted @ 2012-11-27 20:57 风中之炎 阅读(4229) 评论(3) 推荐(3)
摘要:近日,想写一个小型的爬虫框架,可惜的是,zero并没有写框架的经验。因此有必要找一个现有框架来参照下。GOOGLE了下,发现Crawler最适合作为将要写的框架的参照物。Crawler是一个简单的爬虫框架,它实现了爬虫的共同部分,如URL拼接,网页编码等,使得用户可以专注于提取网页内容(原文:Crawler is a simple Java web crawler/spider/joe or any other name you want to call it.The main goal is to abstract that boring and error-prone code fro.. 阅读全文
posted @ 2012-08-16 09:35 风中之炎 阅读(4855) 评论(2) 推荐(0)
摘要:由于要准备测试数据,不得不大量爬取某个网站的内容。为了防止被封,特意将爬虫设计为单线程同步的爬虫。结果在爬了大约3万个页面的时候,对方发回Access Denied。等一段时间后再启动爬虫,结果还是Access Denied。这时才明白这样的想法太天真了,当初就应该找其它方法来避免才对。而本文则记述了这些其它方法。1. 伪装user agent User agent 是HTTP协议的中的一个字段, 其作用是描述发出HTTP请求的终端的一些信息。 服务器通过这个字段就可以知道要访问网站的是什么人了。每个浏览器,每个正规的爬虫都有其固定的user agent,因此只要将这个字段改为这些知名... 阅读全文
posted @ 2012-07-31 16:55 风中之炎 阅读(20828) 评论(7) 推荐(7)
摘要:1. larbin简介(百度百科) larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人Sébastien Ailleret独立开发,用c++语言实现。larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。 Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供。 latbin最初的设计也是依据设计简单但是高度可配置性的原则,因此我们可以看到,一个简单的larbin的爬虫可以每天获取500万的网页,实在是非常高效。 利用larbin,我们 阅读全文
posted @ 2012-02-04 23:37 风中之炎 阅读(11011) 评论(6) 推荐(8)