XCrawler is a unified web crawler for all websites, greatly simplifying web data mining. A crawler can be created visually in user interface or by writing an XML file manually, and the need for coding has been eliminated. Retrieval of active content is well-supported by simulating real human inputs (first by scripts, if fails, then by messages), so nothing can be lost.

This project is a subproject of .Net Extension. Visit this project to know more. Please give advises in discussions if you would like. Follow this project to get the latest information.

The download is not yet available but coming soon. I'm now working on strengthening its ability to operate on active content. The following is a preview of its current interface.

Temporary Chinese Summary

XCrawler是一个基于Microsoft .NET平台的通用的Web数据搜集工具,通过将Web数据搜集的各种需求归纳在一个统一的、易掌握的框架内,消除了网络爬虫硬编码的过程,大幅降低爬虫构建的时间和人力成本,使数据挖掘的研究人员或者网页自动化的开发人员更加专注于自身的任务。特别设计的搜索方式和指令描述同时为将来智能化爬虫的开发奠定基础创造可能。XCrawler的所有核心功能自主设计编写完成,没有引用任何外部组件,这保证了在出现问题时候我们能深入任何代码解决问题。截止2012年8月,XCrawler已经具备了下列主要特性,预计在9月下旬完成收个发布版本的编写和测试:

  1. 用XML声明的具有丰富配置的爬虫。
  2. 用简单、自然的方式实现任意复杂的动态网页内容获取。
  3. 原生的支持数据结构化、遍历、多重索引和压缩的存储系统。
  4. 多线程支持。多个爬虫可以共同运行,一个爬虫亦可启动多个线程。

目前,XCrawler的核心主要由两部分组成,一是爬虫的生成和管理,二是网页数据的控制、收集。

l  每一个爬虫都由纯粹的XML文件写成,爬虫的配置可以简单地修改XML元素的属性达成,爬虫的修改和升级只需要重写XML文档,爬虫的部署只需要拷贝XML文件,在任何地方都无需重新编译。简单的XML文件也非常有利于多客户端协作的爬虫的开发。

XML配置的爬虫(20128月) 

爬虫的XML文档经过解释器生成对应的爬虫类,并接受管理器的管理,管理器同时管理多个后台浏览器(或者其它可用于获取页面数据的类),为爬虫生成任务和分配浏览器,从而实现多线程、多爬虫共同运行。当然,其它的一些必要功能,如错误处理、日志等也由管理器完成。

爬虫生成和管理概念示意图 

XCrawler基于XML的爬虫设计考虑了最大的通用性,因此适用于任何类型的Web网页,并且支持网页的有机整合。基于XCrawler,我们将不再需要耗费精力为特定网站编写爬虫代码。

XCrawler实现All-In-One通用支持 

l  XCrawler设计了一种元素搜索路径和动作脚本,将复杂的动态内容操纵和数据操纵用简单的、易于掌握和易于理解的方式表现出来。相比于硬编码,使用XCrawler的脚本能节省90%以上的时间。经过测试,编写一类页面的爬虫时间在15到30分钟,含测试在内,编写整个网站的爬虫也能在12小时内完成。现有脚本的设计还考虑到了未来智能爬虫的开发,到对很多网站的爬取将不需要编写任何脚本。

活动内容和数据操纵流程示意图 

在XCrawler框架下,一个Web页面下的任何元素通过元素路径(EPath)来描述。例如,为了实现自动登录,我们必须找到用户名和密码的输入框,并向其中输入字符,然后还要点击登录按钮。要找到上述三个网页元素,使用下文所示的三条路径。我们将会看到即使没有特别说明,也能看出路径各部分的意义。详细说明将在后面章节中作出。

l  这是新浪微博的登陆界面,包含用户名、密码输入框和登陆按钮。

新浪微博的登陆 

输入框对应的HTML代码如下所示,注意红色标记部分:

 

 

The crawlers are written in XML.

Last edited Sep 8, 2012 at 8:36 PM by rivermsfly, version 11