# webmagic-plus
**Repository Path**: lcsan/webmagic-plus
## Basic Information
- **Project Name**: webmagic-plus
- **Description**: 网络爬虫
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2014-08-26
- **Last Updated**: 2022-02-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

[](https://travis-ci.org/code4craft/webmagic)
官方网站[http://webmagic.io/](http://webmagic.io/)
>基于webmagic 0.7.3,增强选择器,支持选择器链式执行:
混合选择器 MixeSelector,就是一个表达式执行器,支持xpath|css|json|regex|replace|filter|split各种选择器表达式化。
```java
// MixeSelector为默认选择器
@ExtractBy("xpath('//a/text()').filter('\\S+').replace('^[\\s\\d、]+(.*?)[\\sABCD]+$','$1')")
private String title;
@ExtractBy("xpath('//div/text()').split('\\s+')")
private List answer;
```
或者
```java
new MixeSelector("xpath('//a/text()').filter('\\S+').replace('^[\\s\\d、]+(.*?)[\\sABCD]+$','$1')").select(dom);
new MixeSelector("xpath('//a/text()').filter('\\S+').replace('^[\\s\\d、]+(.*?)[\\sABCD]+$','$1')").selectList(dom);
```
拆分选择器 SplitSelector,将字符串拆成数组。
```java
@ExtractBy(value="\\s+",type=Type.split)
private List answer;
```
或者
```java
new SplitSelector("\\s+").select(dom);
new SplitSelector("\\s+").selectList(dom);
```
过滤选择器 FilterSelector,value为正则表达式,前后自动补齐^和$,支持正向和反向过滤。
```java
@ExtractBy(value="\\S+",type=Type.filter)
private String answer;
```
或者
```java
new FilterSelector("\\S+").select(dom);
```
替换选择器 ReplaceSelector,支持替换和提取。提取和RegexSelector效果差不多
```java
@ExtractBy(value="'^[\\s\\d、]+(.*?)[\\sABCD]+$','$1'",type=Type.replace)
private String title;
```
或者
```java
new ReplaceSelector("^[\\s\\d、]+(.*?)[\\sABCD]+$", "$1").select(dom);
new ReplaceSelector("^[\\s\\d、]+(.*?)[\\sABCD]+$", "$1").selectList(dom);
```