最近在写爬虫玩,爬虫写完后整理了如下笔记,以后说不定用到上。
其实java.net包下的也可以用,但是为了简单,而且有封装好的Jsoup库库用,效率更高。
jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.
jsoup是一个用于处理实际HTML的Java库。它使用HTML5最佳DOM方法和CSS选择器,为获取URL以及提取和处理数据提供了非常方便的API。
简单来说,Jsoup就是用于处理HTML文档的Java库,爬取网页处理时,需要一点CSS选择器的知识。
官网:https://jsoup.org/
中文网:https://www.open-open.com/jsoup/
下面代码使用Jsoup解析了html代码(需要导入jar包或maven依赖)。
String html = "<html><head><title>First parse</title></head><body><p>Parsed HTML into a doc.</p></body></html>";
// 解析html
Document doc = Jsoup.parse(html);
System.out.println(doc);
链接指定url并获取文档。
String url = "https://voice.hupu.com/nba";
// 连接并获取html文档
Document doc = Jsoup.connect(url).get();
System.out.println(doc);
使用jsoup获取虎扑新闻列表页
String url = "https://voice.hupu.com/nba";
// 连接并获取html文档
Document doc = Jsoup.connect(url).get();
System.out.println(doc);
// 使用CSS选择获取元素
Elements es = doc.select("div.news-list > ul > li > div.list-hd > h4 > a");
for (Element e : es) {
// 获取链接href与标题文本
System.out.println(e.attr("href") + " - " + e.text());
}
如果遇到网站使用的是 AJAX 进行数据获取的,可以尝试直接查找数据接口,然后直接从接口中获取数据。
我是参考这篇的:https://zhuanlan.zhihu.com/p/85861609