使用java jsoup抓取页面中的数据
程序员文章站
2022-05-17 10:37:04
...
介绍
使用jsoup来进行解析。 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jsoup提供的中文文档
业务需求
抓取页面中的答案。如图:
demo展示
//方法入口
public static void main(String[] args) {
for (int i = 1974; i <= 2700; i++) {
//获取url
String url = "https://game-solver.com/word-connect-answers/word-connect-level-" + i + "-answers/";
//爬取网页信息
String html = pickData(url);
//获取html中的内容
String content = analyzeHTMLByString(html,i);
//输出获取到的内容
System.out.println(content);
}
}
/*
* 爬取网页信息
*/
private static String pickData(String url) {
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpget = new HttpGet(url);
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// 获取响应实体
HttpEntity entity = response.getEntity();
// 打印响应状态
if (entity != null) {
return EntityUtils.toString(entity);
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/*
* 使用jsoup解析网页信息
*/
private static String analyzeHTMLByString(String html int guan) {
Document document = Jsoup.parse(html);
//获取html class 为info-box succes 的节点
org.jsoup.select.Elements eLunarDate = document.getElementsByClass("info-box success");
//截取掉标签,只获取内容
String str = eLunarDate.toString().substring(32, eLunarDate.toString().length() - 7);
return str ;
}
上一篇: php发送邮件的问题详解_PHP
下一篇: PHP基础
推荐阅读
-
在Python3中使用asyncio库进行快速数据抓取的教程
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)
-
使用ajax请求提交数据时,日期类型无法转换为JAVA中的日期类型
-
使用JAVA中的动态代理实现数据库连接池 JavaSQLJDBC应用服务器互联网
-
eclipse Java web项目数据库由oracle更改为mysql中遇到的问题(使用JPA注解)附上修改过程
-
java使用htmlunit工具抓取js中加载的数据
-
Java中的使用及连接Redis数据库(附源码)
-
【JAVA】表格数据的存储(2)每一行使用javabean对象存储,多行使用放到map或者list中
-
在Python3中使用asyncio库进行快速数据抓取的教程