轻量级爬虫+全文检索解决方案项目——NukeLite(2008-11-14 更新r24版 引入新线程机制)

简介: 轻量级爬虫+全文检索解决方案项目——NukeLite svn: http://nukelite.googlecode.com/svn/trunk/ 项目地址:http://code.google.com/p/nukelite/ 开源协议:Apache License 2.
+关注继续查看

轻量级爬虫+全文检索解决方案项目——NukeLite

svn: http://nukelite.googlecode.com/svn/trunk/

项目地址:http://code.google.com/p/nukelite/

开源协议:Apache License 2.0

 

=================================================================

2008-11-14更新:

版本更新为 0.1.0.0 r24

 更新项:
1、调整数据库插件调用结构;
2、提升引擎对编码识别的效果;
3、舍弃了ThreadPool的操作方式,引入了完成端口来控制线程,主要解决了同时线程并发太多导致的超时现象比较严重的问题,当然也使抓取速度慢了一些。


下次改进应该会对抓取与文本处理进行分离。

提供当前版本编译预览文件下载:(格式RAR)
NukeLite v0.1.0.0 r24 Preview2.rar

=================================================================


2008-11-03更新:

版本更新为 0.1.0.0 r18

更新项:

1、修正了MySQL操作参数名规范
     以前使用的老符合
'@',现在换成'?',连接字符串可以变成“Database=Searcher;Data Source=localhost;User Id=root;Password=123;charset=utf8”,不需要对旧操作符支持。
2、修正了Web管理任务无法设置层次的问题;
3、修正MySQL数据库结构中,UrlHash字段的类型为有符号int;
4、解决了多线程抓取任务不太稳定的问题,现在已经很稳定;
5、新增一个Windows系统服务项目,可以把程序配置为Windows系统服务,安装文件放在“ServiceRelease”目录。

总的来说,现在的爬虫可以称得上比较稳定了,至于是否高效,不太好说。在我本本上,54M无线网卡,1M带宽,双核1.6 CPU,3G内存,基本上每秒1.5条记录。
=================================================================

2008-10-31更新:

版本更新为 0.1.0.0 r16

更新项:

1、网站项目替换为应用程序项目;
2、改变数据库使用架构;
3、增加对MySQL数据库的支持。

注意:数据库操作采用的是MySQL Connector/Net ,操作编码要注意正确选择。系统默认给出的是utf-8。
现在对MS SQLServer 以及MySQL的访问是采用的工厂,请手动复制DLL到测试类应用。
本版本在 SQL Server 2005,MySQL 5下测试通过,不保证其它版本能稳定运行。

 

=================================================================

2008-10-30更新:

版本更新为 0.1.0.0 r10

更新项:

1、增加了Web管理任务项目;
2、改变了解决方案路径;
3、去掉了一些不必要的引用;
4、修改了部分代码编译级的写法,更加适合标准C#编译,除了Web项目,其它两项在Ubuntu 8.04 MonoDevelop 1.0下编译通过。

另外,和一位网友交谈,受到启发,将会在页面捕获处增加插件结构支持,以适应需要对网页结构做更细致处理的需求。比如,通过写某个dll给程序调用,则可以分析出定向网站网页中的日期、作者、分类等信息。开发时间未定,有兴趣的朋友可以和我交流。

=================================================================

2008-10-29更新:

版本更新为 0.1.0.0 r7

更新项:
1、不再使用ADO.Net Entity Framework
2、使用框架改为.Net Framework 2.0
3、修正了数据库一个字段的名称以及部分字段的长度
4、更新了部分注释


提供预览编译版本,下载地址:http://code.google.com/p/nukelite/downloads/list

==================================================================

项目简介:

嘿嘿,我自己写的一个轻量级的解决方案,希望以这个项目为开始,发展成一个健全,强大的全文搜索解决方案。

运行平台:.Net Framework 2.0 / Mono
数据库: MS SQLServer 2005 / MySQL 5
HTTP服务: IIS / Apache

项目采用C#开发,预期分爬虫,索引和搜索三部分。目前正在开发爬虫部分。


上图为该爬虫爬行数据时输出信息。

目前爬虫的工作流程为:

1、设置起始地址、抓取规则、访问深度等;
2、爬虫提取数据分配任务;
3、多线程运行捕获任务;
4、分析捕获文本,设置为规则文本,同时存入数据库和在磁盘生成快照。

生成索引和搜索部分暂未完成。

 

爬虫实现了:
1、多线程抓取;
2、编码识别(对部分站点测试,准确率98%以上);
3、网页快照。

下一步实现:
1、多进程分布式抓取;
2、坏链处理;
3、失败处理等。

目前爬虫的工作方式:

tags: C#爬虫,C#蜘蛛,C#搜索引擎,.Net爬虫,.Net蜘蛛,.Net搜索引擎。

2008-10-28  by yurow.

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
数据采集 存储 大数据
Python爬虫:数据获取与解析的艺术
随着大数据时代的到来,数据的重要性日益凸显。Python作为一种易学易用的编程语言,在数据处理和分析方面有着丰富的库支持。其中,爬虫是获取数据的重要手段之一。本文将介绍Python爬虫的基本概念、常用库以及实战案例。
32 0
|
10天前
|
数据采集 存储 API
介绍如何使用Python进行网络爬虫开发
网络爬虫与数据采集:介绍如何使用Python进行网络爬虫开发,包括请求网页、解析HTML、提取数据等,并讨论常见的爬虫框架如BeautifulSoup、Scrapy等。
24 1
|
数据采集 Python
Python爬虫入门教程 39-100 天津市科技计划项目成果库数据抓取 scrapy
爬前叨叨 缘由 今天本来没有打算抓取这个网站的,无意中看到某个微信群有人问了一嘴这个网站,想看一下有什么特别复杂的地方,一顿操作下来,发现这个网站除了卡慢,经常自己宕机以外,好像还真没有什么特殊的..
732 0
|
JSON JavaScript 前端开发
JS动态加载以及JavaScript void(0)的爬虫解决方案
Intro 对于使用JS动态加载, 或者将下一页地址隐藏为JavaScript void(0)的网站, 如何爬取我们要的信息呢? 本文以Chrome浏览器为工具, 36Kr为示例网站, 使用 Json Handle 作为辅助信息解析工具, 演示如何抓取此类网站.
6302 0
|
Web App开发 数据采集 存储
爬虫入门之线程进程协程抓取方法(八)
1 多线程抓取 import lxml from lxml import etree import requests import threading import time rlock = threading.
|
数据采集 安全 网络安全
由大量爬虫请求引起的带宽占满事件分析和解决方案
2018年2月24日晚,卓见云某客户网站公网出流量突然爆发性增长,导致带宽被占满,事故发现后紧急提升了SLB的带宽,但提升后的带宽仍然被流量占满(原带宽15M,提升至35M)。由于事故发生在非黄金访问时段,正常流量不会这么大,加上其他现象,怀疑是遭到了网络攻击。
5975 0
|
数据采集 Python
python爬虫遇到https站点InsecureRequestWarning警告解决方案
python爬虫遇到https站点InsecureRequestWarning警告解决方案 加三行代码即可 from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformWarningrequests.packages.urllib3.disable_warnings(InsecureRequestWarning)requests.packages.urllib3.disable_warnings(InsecurePlatformWarning)   以上。
1371 0
|
数据采集 Shell Python
python爬虫番外篇(一)进程,线程的初步了解
整理这番外篇的原因是希望能够让爬虫的朋友更加理解这块内容,因为爬虫爬取数据可能很简单,但是如何高效持久的爬,利用进程,线程,以及异步IO,其实很多人和我一样,故整理此系列番外篇 一、进程 程序并不能单独和运行只有将程序装载到内存中,系统为他分配资源才能运行,而这种执行的程序就称之为进程。
1136 0
推荐文章
更多