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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 轻量级爬虫+全文检索解决方案项目——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.

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
3月前
|
数据采集 存储 JSON
Python爬取知乎评论:多线程与异步爬虫的性能优化
Python爬取知乎评论:多线程与异步爬虫的性能优化
|
17天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
8月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
220 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
2月前
|
数据采集 机器学习/深度学习 监控
代理IP并发控制:多线程爬虫的加速引擎
在数据采集领域,多线程爬虫结合代理IP并发控制技术,有效突破反爬机制。通过动态代理池与智能并发策略,显著提升采集效率并降低封禁率,成为高效数据抓取的关键方案。
91 0
|
3月前
|
数据采集 存储 Java
多线程Python爬虫:加速大规模学术文献采集
多线程Python爬虫:加速大规模学术文献采集
|
4月前
|
数据采集 存储 Web App开发
多线程爬虫优化:快速爬取并写入CSV
多线程爬虫优化:快速爬取并写入CSV
|
4月前
|
数据采集 网络协议 前端开发
Python多线程爬虫模板:从原理到实战的完整指南
多线程爬虫通过并发请求大幅提升数据采集效率,适用于大规模网页抓取。本文详解其原理与实现,涵盖任务队列、线程池、会话保持、异常处理、反爬对抗等核心技术,并提供可扩展的Python模板代码,助力高效稳定的数据采集实践。
192 0
|
7月前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
249 23
|
6月前
|
数据采集 存储 网络协议
Java HttpClient 多线程爬虫优化方案
Java HttpClient 多线程爬虫优化方案