java phantomjs 2.1.1_Java之网络爬虫WebCollector2.1.2+selenium2.44+phantomjs2.1.1

/*** Project Name:padwebcollector

* File Name:DiscussService.java

* Package Name:com.pad.service

* Date:2018年7月25日下午4:59:44

* Copyright (c) 2018 All Rights Reserved.

**/

packagecom.pad.service;importjava.util.ArrayList;importjava.util.List;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.phantomjs.PhantomJSDriver;importcn.edu.hfut.dmic.webcollector.crawler.DeepCrawler;importcn.edu.hfut.dmic.webcollector.model.Links;importcn.edu.hfut.dmic.webcollector.model.Page;importcom.pad.entity.DiscussInfo;importcom.pad.impl.DiscussInfoImpl;public class DiscussService extendsDeepCrawler {publicDiscussService(String crawlPath) {super(crawlPath);//TODO Auto-generated constructor stub

}

@OverridepublicLinks visitAndGetNextLinks(Page page) {//TODO Auto-generated method stub

WebDriver driver =getWebDriver(page);

Analysis analysis= newAnalysis();

List discusslist = newArrayList();

List list = driver.findElements(By.className("content"));int i = 1;

String r_msg= "观望";for(WebElement el : list) {if(!"".equals(el.getText().trim())){

r_msg=analysis.analysis(el.getText());

}

DiscussInfo info= newDiscussInfo();

info.setLine_no(String.valueOf(i));

info.setResult_msg(r_msg);

info.setContent_msg(el.getText());

discusslist.add(info);

System.out.println(i+" "+el.getText());

i++;

}

driver.close();

driver.quit();

DiscussInfoImpl impl= newDiscussInfoImpl();

impl.saveData(discusslist);return null;

}public staticWebDriver getWebDriver(Page page) {

System.setProperty("phantomjs.binary.path", "D:\\******\\phantomjs.exe");

WebDriver driver= newPhantomJSDriver();

driver.get(page.getUrl());returndriver;

}public static voidmain(String[] args) {

DiscussService dis=new DiscussService("discuss");

dis.addSeed("https://*******/index/0000012");try{

dis.start(1);

}catch(Exception e) {

e.printStackTrace();

}

}

}

WebCollector是一个无须配置、便于二次开发的Java爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取。 WebCollector致力于维护一个稳定、可扩的爬虫内核,便于开发者进行灵活的二次开发。内核具有很强的扩展性,用户可以在内核基础上开发自己想要的爬虫。源码中集成了Jsoup,可进行精准的网页解析。2.x版本中集成了selenium,可以处理JavaScript生成的数据。 WebCollector特性: 1、自定义遍历策略,可完成更为复杂的遍历业务,例如分页、AJAX 2、可以为每个 URL 设置附加信息(MetaData),利用附加信息可以完成很多复杂业务,例如深度获取、锚文本获取、引用页面获取、POST 参数传递、增量更新等。 3、使用插件机制,用户可定制自己的Http请求、过滤器、执行器等插件。 4、内置一套基于内存的插件(RamCrawler),不依赖文件系统或数据库,适合一次性爬取,例如实时爬取搜索引擎。 5、内置一套基于 Berkeley DB(BreadthCrawler)的插件:适合处理长期和大量级的任务,并具有断点爬取功能,不会因为宕机、关闭导致数据丢失。 6、集成 selenium,可以对 JavaScript 生成信息进行抽取 7、可轻松自定义 http 请求,并内置多代理随机切换功能。 可通过定义 http 请求实现模拟登录。 8、使用 slf4j 作为日志门面,可对接多种日志 9、使用类似Hadoop的Configuration机制,可为每个爬虫定制配置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值