# webmagicx **Repository Path**: VaynePen/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-16 - **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的监控 - 多线程支持。 ### 要求 jdk1.8以上 ### 快速开始 **使用二进制包开始第一个爬虫** webmagicx提供了可执行的二进制包,免去了编译痛苦,直接下载就可以使用。二进制包中,内置了一个抓取豆瓣电影信息的爬虫配置文件,你只需要以下步骤,就可以启动你的第一个爬虫,抓取豆瓣电影: - [点击此处下载webmagicx-1.1的二进制包](https://gitee.com/luosl/webmagicx/attach_files/download?i=114108&u=http%3A%2F%2Ffiles.git.oschina.net%2Fgroup1%2FM00%2F02%2FBD%2FPaAvDFpYdhqABc9FAeDzXwdS2fU293.zip%3Ftoken%3Dcbea8330af91ac053748971e9ee54ef5%26ts%3D1515747191%26attname%3Dwebmagicx-1.1.zip) - 解压zip包,webmagicx的二进制包解压后会得到如下的一些文件: ``` webmagicx └ spiderConf → 爬虫配置文件目录,用于存放爬虫配置文件 └ douban.spider.xml → 爬虫配置文件,请放到格式为xml,请放到spiderConf目录下,请务必以.spider.xml结尾 └ bin → 命令路径 └ start.bat → windos环境下,快捷启动命令 └conf → 项目配置 └ log4j.properties → 项目日志配置文件 └ lib → 项目依赖 ``` - 运行bin/start.bat 命令 - 待爬虫运行一段时间后会在当bin目录中 **豆瓣影.csv** 和 **img** 文件夹,分别存放了电影资料和电影封面图片。如下图所示: ![电影信息](https://gitee.com/uploads/images/2018/0112/170628_6f60981e_142580.png "屏幕截图.png") ![电影封面](https://gitee.com/uploads/images/2018/0112/170645_117a96af_142580.png "屏幕截图.png") - 打开浏览器,输入网址[http://localhost:9000/spider/douban.spider](http://localhost:9000/spider/douban.spider),即可看到爬虫的运行状态,如下图所示: ![rest监控](https://gitee.com/uploads/images/2018/0112/170210_51ad6cf1_142580.png "屏幕截图.png") **webmagicx的配置文件** 爬虫配置是webmagicx的核心,至于配置文件选用xml格式的原因有以下几点: ******** - xml非常的大众化,特别是对于广大的javaer而言。 - xml虽然有些臃肿,但它的表达能力是毋庸置疑的,同时他也非常易于阅读,同时层次也非常的清晰。 - 最后一点,我觉得scala解析xml真的很容易 :sunglasses: 说了这么多,其实配置也就这几个部分: - startUrls:爬虫url入口。 - targetUrlRegexs:爬虫到底抓那些网页? - attribute:爬虫的属性,比如开几个线程,抓多深的深度等。 - components:爬虫的组件爬虫,一般情况下,我们只需要定义pipeline,用来告诉爬虫怎么保存抓取的结果。 - site:站点配置,主要是用来伪装爬虫。 - fields:抓取的字段配置。 列举了这么,其实下面的配置文件就说的很清楚了。。。。 ``` 抓豆瓣电影信息 https://movie.douban.com/subject/26662193/?from=showing https://movie\.douban\.com/subject.* 1 UTF-8 20000 3 0 1000 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36
title head true true info true true imgUrl true true score false false abstract false false ``` ### 说明 项目才刚刚开始,大家有什么建议和想法欢迎一起交流。同时也希望有兴趣和精力的盆友一起来完善这个项目 :smile: ### QQ群 468248192