JavaHTML解析器(5)支持自动的管理等Java爬虫
优采云 发布时间: 2021-04-01 07:05JavaHTML解析器(5)支持自动的管理等Java爬虫
([4)支持代理服务器
([5)支持自动管理等。
在Java采集器的开发中使用最广泛的网页获取技术。它具有一流的速度和性能。就功能支持而言,它相对较低。它不支持JS脚本执行,CSS解析,渲染和其他准浏览器功能。建议用于需要快速运行的应用。无需解析脚本和CSS即可获取网页的场景。
示例代码如下:
package cn.ysh.studio.crawler.httpclient;import org.apache.http.client.HttpClient;import org.apache.http.client.ResponseHandler;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.DefaultHttpClient;/**
* 基于HtmlClient抓取网页内容
*
* @author www.yshjava.cn
*/publicclassHttpClientTest{publicstaticvoid main(String[] args)throwsException{//目标页面String url ="http://www.yshjava.cn";//创建一个默认的HttpClientHttpClient httpclient =newDefaultHttpClient();try{//以get方式请求网页http://www.yshjava.cnHttpGet httpget =newHttpGet(url);//打印请求地址System.out.println("executing request "+ httpget.getURI());//创建响应处理器处理服务器响应内容ResponseHandlerresponseHandler=newBasicResponseHandler();//执行请求并获取结果String responseBody = httpclient.execute(httpget, responseHandler);System.out.println("----------------------------------------");System.out.println(responseBody);System.out.println("----------------------------------------");}finally{//关闭连接管理器
httpclient.getConnectionManager().shutdown();}}}
是Java HTML解析器,可以直接解析URL地址和HTML文本内容。它提供了非常省力的API,可以通过DOM,CSS和类似的操作方法来检索和处理数据。
网页获取和解析的速度非常快,建议使用。
主要功能如下:
1.从URL,文件或字符串中解析HTML;
2.使用DOM或CSS选择器查找和检索数据;
3.可以操纵HTML元素,属性和文本;
示例代码如下:
package cn.ysh.studio.crawler.jsoup;import java.io.IOException;import org.jsoup.Jsoup;/**
* 基于Jsoup抓取网页内容
* @author www.yshjava.cn
*/publicclassJsoupTest{publicstaticvoid main(String[] args)throwsIOException{//目标页面String url ="http://www.yshjava.cn";//使用Jsoup连接目标页面,并执行请求,获取服务器响应内容String html =Jsoup.connect(url).execute().body();//打印页面内容System.out.println(html);}}
是一个开放源代码的Java页面分析工具。阅读页面后,您可以有效地分析页面上的内容。该项目可以模拟浏览器操作,被称为Java浏览器的开源实现。这个没有界面的浏览器也非常快。使用了引擎。模拟js操作。
网页获取和解析的速度更快,性能更好。建议用于需要解析Web脚本的应用程序场景。
示例代码如下:
package cn.ysh.studio.crawler.htmlunit;import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.Page;import com.gargoylesoftware.htmlunit.WebClient;/**
* 基于HtmlUnit抓取网页内容
*
* @author www.yshjava.cn
*/publicclassHtmlUnitSpider{publicstaticvoid main(String[] s)throwsException{//目标网页String url ="http://www.yshjava.cn";//模拟特定浏览器FIREFOX_3WebClient spider =newWebClient(BrowserVersion.FIREFOX_3);//获取目标网页Page page = spider.getPage(url);//打印网页内容System.out.println(page.getWebResponse().getContentAsString());//关闭所有窗口
spider.closeAllWindows();}}
(发音为)是使用Java开发的Web应用程序测试工具。考虑到Java语言的简单性和强大功能,它可以使您在真正的浏览器中完成Web应用程序的自动化测试。因为调用了本地浏览器,所以支持CSS渲染和JS执行。
网页获取的速度是平均速度,并且IE版本太低(6 / 7)可能会导致内存泄漏。
示例代码如下:
package cn.ysh.studio.crawler.ie;import watij.runtime.ie.IE;/**
* 基于Watij抓取网页内容,仅限Windows平台
*
* @author www.yshjava.cn
*/publicclassWatijTest{publicstaticvoid main(String[] s){//目标页面String url ="http://www.yshjava.cn";//实例化IE浏览器对象
IE ie =new IE();try{//启动浏览器
ie.start();//转到目标网页
ie.goTo(url);//等待网页加载就绪
ie.waitUntilReady();//打印页面内容System.out.println(ie.html());}catch(Exception e){
e.printStackTrace();}finally{try{//关闭IE浏览器
ie.close();}catch(Exception e){}}}}
它也是用于Web应用程序测试的工具。该测试直接在浏览器中运行,就像真实用户正在操作它一样。受支持的浏览器包括IE等。此工具的主要功能包括:测试与浏览器的兼容性-测试您的应用程序,以查看它是否可以在不同的浏览器和操作系统上正常运行。测试系统功能-创建回归测试以验证软件功能和用户需求。支持自动录制动作和自动生成。用Net,Java,Perl等不同语言测试脚本。这是专门为Web应用程序编写的验收测试工具。
网页抓取速度很慢,对于爬虫来说不是一个很好的选择。
示例代码如下:
package cn.ysh.studio.crawler.selenium;import org.openqa.selenium.htmlunit.HtmlUnitDriver;/**
* 基于HtmlDriver抓取网页内容
*
* @author www.yshjava.cn
*/publicclassHtmlDriverTest{publicstaticvoid main(String[] s){//目标网页String url ="http://www.yshjava.cn";HtmlUnitDriver driver =newHtmlUnitDriver();try{//禁用JS脚本功能
driver.setJavascriptEnabled(false);//打开目标网页
driver.get(url);//获取当前网页源码String html = driver.getPageSource();//打印网页源码System.out.println(html);}catch(Exception e){//打印堆栈信息
e.printStackTrace();}finally{try{//关闭并退出
driver.close();
driver.quit();}catch(Exception e){}}}}
具有接口的开放源Java浏览器,该接口支持脚本执行和CSS渲染。速度是平均水平。
示例代码如下:
package cn.ysh.studio.crawler.webspec;import org.watij.webspec.dsl.WebSpec;/**
* 基于WebSpec抓取网页内容
*
* @author www.yshjava.cn
*/publicclassWebspecTest{publicstaticvoid main(String[] s){//目标网页String url ="http://www.yshjava.cn";//实例化浏览器对象WebSpec spec =newWebSpec().mozilla();//隐藏浏览器窗体
spec.hide();//打开目标页面
spec.open(url);//打印网页源码System.out.println(spec.source());//关闭所有窗口
spec.closeAll();}}
源代码下载:网络爬虫(网络蜘蛛)网络爬虫示例源代码
转载源地址: