反复给网站编写不同的爬虫逻辑太麻烦了,自己实现了一个小框架可以自定义的部分有:请求方式(默认为Getuser-agent为谷歌浏览器的设置),可以通过实现RequestSet接口来自定义请求方式储存方式(默认储存在f盘的html文件夹下),
可以自定义的部分有:
请求方式(默认为Getuser-agent为谷歌浏览器的设置),可以通过实现RequestSet接口来自定义请求方式
储存方式(默认储存在f盘的html文件夹下),可以通过SaveUtil接口来自定义保存方式
需要保存的资源(默认为整个html页面)
筛选方式(默认所有url都符合要求),通过实现ResourseChooser接口来自定义需要保存的url和资源页面
实现的部分有:
html页面的下载方式,通过HttpClient实现html页面的下载
html页面的解析部分,通过jsoup实现html页面的解析
HtmlDownloader类,用于根据一个url下载一个html页面
package DownloadPackage;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;public class HtmlDownloader {RequestSet requestset = null;public HtmlDownloader(RequestSet requestset){this.requestset = requestset;}public String downloadhtml(String url){String html = null;//创建一个客户端//创建一个读取流从entity读取htmlBufferedReader reader = null;CloseableHttpClient httpclient = HttpClients.createDefault();HttpResponse response = null;try {response = httpclient.execute(requestset.getMethod(url));HttpEntity entity = response.getEntity();reader = new BufferedReader(new InputStreamReader(entity.getContent()));StringBuilder sb = new StringBuilder();while((html = reader.readLine()) != null){sb.append(html);}html = sb.toString();System.out.println("一个html页面获取成功");}catch (IOException e) {System.out.println(url+"连接失败");}finally{if(reader != null){try {reader.close();httpclient.close();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return html;}}
--结束END--
本文标题: 分享一个简单的java爬虫框架
本文链接: https://www.lsjlt.com/news/221631.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0