宗老湿自学Jsoup
2018-07-24 07:52:46来源:博客园 阅读 ()
Jsoup 简介
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
我们在爬虫采集网页领域 主要作用是 用HttpClient获取到网页后 具体的网页提取需要的信息的时候 ,就用到Jsoup,Jsoup可以使用强大的类似Jquery,css选择器,来获取需要的数据;
Jsoup官方地址:https://jsoup.org/
Jsoup最新下载:https://jsoup.org/download
Jsoup文档:https://jsoup.org/cookbook/introduction/parsing-a-document
最新版Maven地址:
1 <dependency> 2 <groupId>org.jsoup</groupId> 3 <artifactId>jsoup</artifactId> 4 <version>1.10.2</version> 5 </dependency>
小插曲:在构建maven项目时下载jar包速度非常的慢,可以采用阿里云的仓库,速度快的不是一点
具体方法:
将maven安装目录conf下得settings.xml 文件拷贝到/.m2文件夹下,并在其中的
<mirrors></mirrors>标签中增加如下代码:
1 <mirror> 2 <id>nexus-aliyun</id> 3 <mirrorOf>central</mirrorOf> 4 <name>Nexus aliyun</name> 5 <url>http://maven.aliyun.com/nexus/content/groups/public</url> 6 </mirror>
然后重启eclipse即可快速构建项目。
pom.xml文件中增加jsoup与httpclient依赖
1 <dependency> 2 <groupId>org.apache.httpcomponents</groupId> 3 <artifactId>httpclient</artifactId> 4 <version>4.5.5</version> 5 </dependency> 6 7 <dependency> 8 <groupId>org.jsoup</groupId> 9 <artifactId>jsoup</artifactId> 10 <version>1.11.2</version> 11 </dependency>
获取博客园首页内容实例代码:
1 package com.zhjxtf.jsoup; 2 3 import org.apache.http.HttpEntity; 4 import org.apache.http.client.methods.CloseableHttpResponse; 5 import org.apache.http.client.methods.HttpGet; 6 import org.apache.http.impl.client.CloseableHttpClient; 7 import org.apache.http.impl.client.HttpClients; 8 import org.apache.http.util.EntityUtils; 9 import org.jsoup.Jsoup; 10 import org.jsoup.nodes.Document; 11 import org.jsoup.nodes.Element; 12 import org.jsoup.select.Elements; 13 14 public class Demo01 { 15 public static void main(String[] args) throws Exception{ 16 CloseableHttpClient httpClient = HttpClients.createDefault();//创建httpclient实例 17 HttpGet httpHet = new HttpGet("https://www.cnblogs.com/");//创建httpGet实例 18 CloseableHttpResponse response = httpClient.execute(httpHet);//执行get请求 19 HttpEntity httpEntity = response.getEntity();//获取返回的实体 20 //System.out.println("网页的内容是: "+EntityUtils.toString(httpEntity, "utf-8"));//指定编码,并打印网页的内容 21 String content = EntityUtils.toString(httpEntity, "utf-8"); 22 Document doc = Jsoup.parse(content); //解析网页得到文档对象 23 Elements elements = doc.getElementsByTag("title");//获取标题 24 Element elementTitle = elements.get(0);//获取第一个元素 25 System.out.println(elementTitle.text()); //返回文本元素 26 System.out.println(elementTitle.html()); //返回html元素 27 Element element2 =doc.getElementById("site_nav_top");//根据id获取元素并进行操作 28 System.out.println(element2.text()); //返回元素的文本 29 System.out.println(element2.html()); //返回html元素 30 response.close();//关闭流释放系统资源 31 } 32 }
Jsoup查找DOM元素:
getElementsByTag(String tagName) 根据tag名称查找Dom元素
getElementById(String id)根据id名称查找Dom元素
getElementsByClass(String className) )根据样式名称查找Dom元素
getElementsByAttribute(String key)根据属性名称查找Dom元素
getElementsByAttributeValue(key, value)根据属性名称和属性值查找DOM元素
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JAVA自学笔记(5) 2020-06-02
- 怎么自学JAVA开发? 2020-05-22
- 学习计算机基础必读的4本经典入门书籍,自学编程必备书单! 2020-05-15
- 0基础自学Java可行吗? 2020-04-18
- 如何自学java开发? 2020-04-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash