Jsoup就是解析网页的URL地址、HTML文本内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
直接上代码:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
/**
* 爬取公众号图片
*
* @param args
* @author Shen ShiJu
* @date 2023/1/12 14:29
*/
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<>();
//这里是url地址
String url = "https://mp.weixin.qq.com/s/kyschtaRQ7Sy";
// 获取页面
Document document = Jsoup.connect(url)
.get();
int i = 0;
//获取class类名
Elements hds = document.getElementsByClass("rich_pages");
for (Element hd : hds) {
String src = hd.attr("data-src");
i++;
//下载到本地
download(src, i, "/Users/shijushen/Desktop/item/shansi/springboot-pf4j-service/src/main/java/com/example/springbootpf4jservice/jsoup/img/" + i + ".jpeg");
}
}
public static void download(String urlString, int i, String path) throws Exception {
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
//下载路径及下载图片名称
File file = new File(path);
FileOutputStream os = new FileOutputStream(file, true);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
System.out.println(i);
// 完毕,关闭所有链接
os.close();
is.close();
}