# webmagicx **Repository Path**: libaowei/webmagicx ## Basic Information - **Project Name**: webmagicx - **Description**: webmagicx一款基于webmagic的可配置化的爬虫框架 - **Primary Language**: Scala - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 56 - **Created**: 2018-01-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # webmagicx ### webmagicx一款基于webmagic的可配置化的爬虫框架 webmagicx是一款可配置爬虫框架,webmagicx中的webmagic表示该框架扩展于webmagic,x表示该框架是一个基于xml的配置型爬虫框架。 得益于webmagic强大的可扩展能力,本框架实现了以下特性: - 无需写任何代码,只需你熟悉正则表达式和xpath,通过简单的配置便可实现一个爬虫。 - 实现了基于corn的定时调度功能。 - 实现的简单通用的管道,能够将抓取的数据轻松存入数据库和文件。 - 在webmagic的基础上实现了深度抓取。 - 基于rest的监控 - 多线程支持。 ### 快速开始 **使用二进制包开始第一个爬虫** webmagicx提供了可执行的二进制包,免去了编译痛苦,直接下载就可以使用。你只需要以下步骤,就可以启动你的第一个爬虫: - 首先你需要安装jdk1.8以上哦 - [点击此处下载webmagicx二进制包](https://gitee.com/luosl/webmagicx/attach_files/download?i=110431&u=http%3A%2F%2Ffiles.git.oschina.net%2Fgroup1%2FM00%2F02%2F95%2FPaAvDFpA8ciAW7L0A3TF98WaQnM196.zip%3Ftoken%3D9593933320d105f6dd4043db8a485fc9%26ts%3D1514252817%26attname%3Dwebmagicx.zip) - 解压zip包,运行start.bat,或者在当前目录执行命令 java -jar webmagicx-1.0-SNAPSHOT.jar - 待爬虫运行一段时间后会在当前目录生成 test.csv 文件,文件内便是爬虫抓取的信息。 - 打开浏览器,输入网址[http://localhost:9000/spider/osc.spider](http://localhost:9000/spider/osc.spider),即可看到爬虫的运行状态,如下图所示: - ![爬虫运行信息](https://gitee.com/uploads/images/2017/1225/155703_51b9189f_142580.png "QQ截图20171225155648.png") **webmagicx的结构** webmagicx的二进制包解压后会得到如下的一些文件: ``` webmagicx └ spiderConf → 爬虫配置文件目录,用于存放爬虫配置文件 └ osc.spider.xml → 爬虫配置文件,请放到格式为xml,请放到spiderConf目录下,请务必以.spider.xml结尾 └ start.bat → windos环境下,快捷启动命令,可用 java -jar webmagicx-1.0-SNAPSHOT.jar 命令代替 └ webmagicx-1.0-SNAPSHOT.jar → webmagix二进制jar包 ``` **webmagicx的配置文件** 爬虫配置是webmagicx的核心,至于配置文件选用xml格式的原因有以下几点: ******** - xml非常的大众化,特别是对于广大的javaer而言。 - xml虽然有些臃肿,但它的表达能力是毋庸置疑的,同时他也非常易于阅读,同时层次也非常的清晰。 - 最后一点,我觉得scala解析xml真的很容易 :sunglasses: 说了这么多,其实配置也就这几个部分: - startUrls:爬虫url入口。 - targetUrlRegexs:爬虫到底抓那些网页? - attribute:爬虫的属性,比如开几个线程,抓多深的深度等。 - components:爬虫的组件爬虫,一般情况下,我们只需要定义pipeline,用来告诉爬虫怎么保存抓取的结果。 - site:站点配置,主要是用来伪装爬虫。 - fields:抓取的字段配置。 列举了这么,其实下面的配置文件就说的很清楚了。。。。 ``` 抓取开源中国博客的标题和作者 https://www.oschina.net/blog https://my\.oschina\.net/[a-z0-9A-Z]+/blog.* 0 UTF-8 20000 15 3 org.luosl.webmagicx.pipeline.CSVPipeline Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36
author //*div[@class='user-info']/div[@class='name']/a/text() true true title //*div[@class='title']/text() true true ``` ### 说明 项目才刚刚开始,大家有什么建议和想法欢迎一起交流。同时也希望有兴趣和精力的盆友一起来完善这个项目 :smile: ### QQ群 468248192