public class Spider extends Object
| 限定符和类型 | 方法和说明 |
|---|---|
static Spider |
annotation(Class<? extends PageParser> clazz)
annotation入口,如果不想一项一项设置Api,也可以写一个annotation
annotation类:ListDetail(列表-详情页面)、Single(单个页面,不抓取页面上链接)、Cascade(单个页面,包括所有链接)、Site(单个站点)
|
static Spider |
cascade()
创建针对单页面上(包括所有链接)格式的爬虫
|
Spider |
cluster(ClusterNode node) |
Spider |
defaultDownloadDisk()
默认的下载本地路径
默认地址:$path/data/download/${seedname}
|
Spider |
defaultLucene()
将解析结果索引保存到本系统/data/index目录下
|
Spider |
defaultProbe()
设置页面变化探测器,用于探测抓取页面的变化,如果有变化就立刻抓取,没有变化则继续探测。
|
Spider |
defaultProxy()
加载系统自带的http_proxy文件
注意:调用此方法之前请确保conf/http_proxy文件中有可用代理
|
Spider |
defaultUserAgent()
默认加载系统自带的UserAgent
|
Spider |
detailSelector(String detailSelector)
抓取的详情页面链接选择器
非必填项,当抓取的页面格式属于【列表-详情】页时使用,支持Jsoup原生的选择器(html内容)或Jsonpath(json内容)。 |
Spider |
downloadDisk(String disk)
下载本地根路径,默认地址为$path/data/download/
子目录是${seedName},用来表示每个seed对应不同的下载子目录
|
Spider |
downloadFilenameRule(boolean isContainUrl)
下载文件命名规则,一般为default或url两种类型
url表示文件名中包含url,default表示不包含
|
Spider |
downloadHdfs(String hdfs)
下载到hdfs路径
|
Spider |
elementSelectParser(String elementSelector)
单个页面元素解析内部类,设置了此项就不能设置自定义的解析类了
|
Spider |
email(String... recipient)
当系统发生异常,可将相关信息发送给指定接收人
|
Spider |
fetchUrl(String fetchUrl)
设置抓取url
必填项。 |
Spider |
field(String name,
String selector)
设置一个动态字段
|
Spider |
fields(Map<String,String> fields)
设置多个动态字段
|
Spider |
ftp(String host,
int port,
String username,
String password)
设置ftp为资源同步方式
|
Spider |
hbase(String address)
将解析结构保存到hbase数据库中
|
static void |
initFreeProxy()
获取互联网上免费代理
并自动将可用的代理保存到本地http_proxy文件中 此方法一般在启动爬虫之前使用,下次在启动爬虫需要代理时, 可以直接调用defaultProxy方法即可 |
Spider |
javascriptSupport(boolean ifSupport)
是否支持Javascript,有些网站需要等待javascript来生成结果,此时可以将此属性设为true,
默认值是false,慎用:抓取效率会变慢
|
Spider |
jdbc(String jdbc)
将解析的结果保存到Mysql中
jdbc格式:jdbc:mysql://localhost:3306/spider? |
static Spider |
list_detail()
创建针对列表-详情页面格式的爬虫
|
Spider |
lucene(String indexPath)
将解析结果进行Lucene索引并且保存
子目录是${seedName},用来表示每个seed对应不同的下载子目录
|
static void |
main(String... args)
通过配置文件启动爬虫的入口方法
|
Spider |
mongodb(String mongodburl)
|
Spider |
parser(Class<? extends PageParser> parser)
自定义页面解析类
|
Spider |
parser(PageParser parser)
自定义页面解析接口,用于Lambda表达式
|
Spider |
post()
http请求方法
非必填项。 |
Spider |
probe(String selector,
int sleepSeconds)
设置页面变化探测器,用于探测抓取页面的变化,如果有变化就立刻抓取,没有变化则继续探测。
|
Spider |
proxy(String ip,
Integer port)
设置代理
爬虫会自动检测,如果代理不能用,会立刻停止 |
Spider |
proxys(List<HttpProxy> list)
设置一组代理
爬虫会自动检测,如果代理不能用,会立刻停止 |
Spider |
resourceSelector(String resourceSelector)
资源选择器,配置时必须要包含在detail_link与avatar资源的外部资源选择器。
|
Spider |
rsync(String host,
String username,
boolean isModule,
String moduleOrDir)
设置rsync为资源同步方式
注意:暂时不支持windows |
Spider |
scp(String host,
String username,
String dir,
Integer port)
设置scp为资源同步方式
需要ssh-keygen配置无密码登陆 |
Spider |
seedName(String seedName)
设置种子名称
每个种子名称要唯一 |
static Spider |
single()
创建针对单个页面(不抓取页面上的链接)的爬虫
|
static Spider |
site()
创建针对整站(不包括外链)格式的爬虫
|
Spider |
sleep(int seconds)
抓取延迟策略
非必填项。 |
Spider |
sleepRange(int lower,
int upper)
抓取随机延迟策略
非必填项。 |
void |
start()
爬虫开启运行
检查Api设置是否设置正确,否则启动失败
|
Spider |
thread(int count)
爬虫工作线程数量,非必填项。
|
Spider |
timer(String startTime)
抓取启动器
startTime表示爬虫抓取的开始时间,格式为:2001-10-10 23:29:02,如果startTime已经过时,爬虫会立刻执行 |
Spider |
timer(String firstTime,
int interval)
抓取启动器
firstTime表示爬虫第一次的抓取时间,格式为:2001-10-10 23:29:02,如果firstTime已经过时,爬虫会立刻执行 interval表示爬虫重复抓取的时间间隔,单位是秒 |
Spider |
totalPages(int totalPageNum)
抓取的列表总页数
非必填项,当抓取的页面格式属于【列表-详情】页时使用,直接定义抓取页数,默认值是1。 |
Spider |
totalPages(String totalPageSelector)
抓取的列表总页数
非必填项,当抓取的页面格式属于【列表-详情】页时使用,动态获取页面中显示的总页数。 |
Spider |
userAgent(String userAgent)
伪造一个UserAgent
|
Spider |
userAgents(List<String> userAgents)
伪造一个列表的UserAgent
|
public Spider fetchUrl(String fetchUrl)
fetchUrl - 抓取urlpublic Spider post()
public Spider defaultProbe()
public Spider probe(String selector, int sleepSeconds)
selector - 页面selector选择器sleepSeconds - 监控频率,单位:秒public Spider thread(int count)
count - 爬虫线程数public Spider detailSelector(String detailSelector)
detailSelector - 详情页面选择器public Spider totalPages(String totalPageSelector)
totalPageSelector - 总页数选择器public Spider totalPages(int totalPageNum)
totalPageNum - 总页数public Spider sleep(int seconds)
seconds - 每次请求延迟,单位秒public Spider sleepRange(int lower, int upper)
lower - 时间波动下限upper - 时间波动上限public Spider timer(String startTime)
startTime - 抓取的开始时间public Spider timer(String firstTime, int interval)
firstTime - 第一次的抓取时间interval - 下次抓取的时间间隔,单位是秒public Spider resourceSelector(String resourceSelector)
resourceSelector - Jsoup选择器支持的字符串public Spider javascriptSupport(boolean ifSupport)
ifSupport - 是否支持public Spider proxy(String ip, Integer port)
ip - 代理ipport - 代理端口public Spider proxys(List<HttpProxy> list)
list - 代理列表public Spider defaultProxy()
public Spider userAgent(String userAgent)
userAgent - 自定义useragent字符串public Spider userAgents(List<String> userAgents)
userAgents - 自定义useragent字符串public Spider defaultUserAgent()
public Spider downloadDisk(String disk)
disk - 磁盘路径public Spider defaultDownloadDisk()
public Spider parser(Class<? extends PageParser> parser)
parser - 自定义解析类public Spider parser(PageParser parser)
parser - Lambda表达式或PageParser实现类public Spider elementSelectParser(String elementSelector)
elementSelector - Jsoup支持的选择器字符串public Spider jdbc(String jdbc)
jdbc - 需要把用户名与密码也写到url的参数中public Spider mongodb(String mongodburl)
mongodburl - Stringpublic Spider lucene(String indexPath)
indexPath - Lucene索引存储的磁盘根路径public Spider defaultLucene()
public Spider downloadFilenameRule(boolean isContainUrl)
isContainUrl - booleanpublic Spider email(String... recipient)
recipient - 一个或多个指定人public Spider field(String name, String selector)
name - 自定义字段名称selector - 对应字段的页面选择器public Spider fields(Map<String,String> fields)
fields - 动态字段[字段名称,字段值]public Spider ftp(String host, int port, String username, String password)
host - 服务器地址port - 端口号,默认为21username - 用户名(可以为空)password - 密码(可以为空)public Spider rsync(String host, String username, boolean isModule, String moduleOrDir)
host - 服务器地址username - 用户名isModule - 是否为module模式,是为true,不是则代表远程目录为falsemoduleOrDir - module模式或者远程dir目录,如果是module模式,密码需
要在服务器端配置;如果是远程dir,需要ssh-keygen配置无密码登陆public Spider scp(String host, String username, String dir, Integer port)
host - 服务器地址username - 登陆的用户名dir - 服务器端目录port - scp端口号,默认为22public static Spider annotation(Class<? extends PageParser> clazz) throws Exception
clazz - 自定义Annotation类Exception - 异常public static Spider list_detail()
public static Spider single()
public static Spider cascade()
public static Spider site()
public Spider cluster(ClusterNode node)
public void start()
public static void initFreeProxy()
public static void main(String... args)
args - 命令行参数Copyright © 2018. All rights reserved.