目录
爬虫Jsoup
Demo
<!-- 解析网页 只是解析网页 音乐和电影taki了解下-->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
package com.example.demo.utils;
import com.example.demo.pojo.Content;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class HtmlParseUtil {
public static void main(String[] args) throws Exception {
new HtmlParseUtil().parseJD("java");
}
public List<Content> parseJD(String keyWords) throws Exception {
// 获取请求 https://search.jd.com/Search?keyword=java
// 前提是 需要联网 【ajax不能获取到,模拟浏览器才能获取到】
String url = "https://search.jd.com/Search?keyword=" + keyWords;
// 解析网页 (Jsoup 返回的Document就是浏览器Document对象)
Document document = Jsoup.parse(new URL(url), 30000);
// 所有在js中可以使用的方法,这里都能用
Element element = document.getElementById("J_goodsList");
System.out.println(element.html());
// 获取所有的li元素
Elements elements = element.getElementsByTag("li");
ArrayList<Content> goodsList = new ArrayList<>();
// 获取元素中的内容,这里el 就是每一个li标签了
for (Element el : elements) {
// 关于这种图片特别多的网站,所有的图片都是延迟加载的! 懒加载
// source-data-lazy-img
// String img = el.getElementsByTag("img").eq(0).attr("src");
String img = el.getElementsByTag("img").eq(0).attr("source-data-lazy-img");
String price = el.getElementsByClass("p-price").eq(0).text();
String title = el.getElementsByClass("p-name").eq(0).text();
System.out.println(img);
System.out.println(price);
System.out.println(title);
System.out.println("--------------------------------");
Content content = new Content();
content.setImg(img);
content.setImg(price);
content.setImg(title);
goodsList.add(content);
}
return goodsList;
}
}