Java爬虫是通过编程实现模拟人工访问网站,从而获取网站中的数据。为了解析HTML页面,我们需要使用一个工具——jsoup。
什么是jsoup
Jsoup是一个Java HTML解析器,可以解析HTML文档,从中提取数据,操作DOM树等。
如何获取jsoup
在Java项目中,我们需要将jsoup的jar文件引入到项目中,可以使用Maven或手动下载jar包的方式引入。
Maven引入方式:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
jsoup使用示例
假设我们要从一个网站中获取新闻信息。我们首先需要获取到该网站的HTML页面,并使用jsoup对HTML页面进行解析。
示例1:获取新闻列表
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class NewsList {
public static void main(String[] args) throws IOException {
String url = "https://news.baidu.com/";
Document doc = Jsoup.connect(url).get();
Elements newsList = doc.select("#pane-news ul li a");
for(Element news : newsList){
System.out.println(news.text());
}
}
}
该示例中,我们首先通过Jsoup.connect(url).get()
方法获取到该网站的HTML页面,然后使用doc.select()
方法通过CSS选择器获取新闻列表中的新闻链接,并遍历输出新闻标题。
示例2:获取新闻正文
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class NewsContent {
public static void main(String[] args) throws IOException {
String url = "https://news.baidu.com/sport";
Document doc = Jsoup.connect(url).get();
Element newsContent = doc.select("#main-content div").get(2);
System.out.println(newsContent.text());
}
}
该示例中,我们同样通过Jsoup.connect(url).get()
方法获取到该网站的HTML页面,然后使用doc.select()
方法通过CSS选择器获取新闻正文的DOM对象,并输出正文内容。
总结
通过使用jsoup,我们可以轻松获取网站中的数据,操作DOM树,实现定向爬取。但是在实际使用中,需要注意遵守相关网络法规和网站系统规则,以免造成纠纷。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java爬虫jsoup解析HTML的工具学习 - Python技术站