Jsoup爬取网站图片

本文介绍如何利用Java的HTML解析库Jsoup来爬取网站上的图片,并将其下载到本地。首先添加Jsoup的依赖,接着编写下载图片的代码,包括创建文件夹、获取图片文件名并进行UTF-8编码,最后通过Jsoup连接到网页并执行下载操作。
摘要由CSDN通过智能技术生成

Jsoup 是一款 Java 的 HTML 解析器,我们可以用它进行网站图片的爬取,然后下载到本地文件夹中。
首先在pom.xml中添加依赖。

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.10.2</version>
</dependency>

首先我们写出下载图片的方法,先创建一个文件夹,然后截取出图片的文件名,并对文件名进行处理并转换为UTF-8格式。

public static void downImages(String filePath, String imgUrl) {
   
    // 若没有指定文件夹,则先创建
    File dir = new File(filePath);
    if (!dir.exists()) {
   
        dir.mkdirs();
    }
    // 截取图片文件名
    String fileName = imgUrl.substring(imgUrl.lastIndexOf('/')
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果页面使用 JavaScript 动态加载图片,那么使用 Jsoup 无法直接获取到这些图片的 URL,需要使用其他技术来模拟浏览器行为,比如使用 Selenium WebDriver。 以下是使用 Selenium WebDriver 和 Jsoup 爬取动态页面图片的示例代码: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.List; public class Main { public static void main(String[] args) { // 设置 Selenium WebDriver 的路径 System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); // 创建 ChromeDriver 实例 WebDriver driver = new ChromeDriver(); // 打开目标页面 driver.get("https://example.com"); // 等待页面加载完成 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } // 使用 Jsoup 解析 HTML Document doc = Jsoup.parse(driver.getPageSource()); // 获取图片元素 Elements imgElements = doc.select("img"); // 遍历图片元素 for (int i = 0; i < imgElements.size(); i++) { // 获取图片 URL String imgUrl = imgElements.get(i).attr("src"); // 下载图片 // ... } // 关闭 ChromeDriver driver.quit(); } } ``` 这段代码首先创建了一个 Selenium WebDriver 实例,打开了目标页面,并等待页面加载完成。然后,使用 Jsoup 解析 HTML,获取所有的图片元素,遍历图片元素并获取图片 URL,最后可以使用 Java 的网络编程 API 或第三方库(如 Apache HttpClient)下载图片。最后,关闭 ChromeDriver。需要注意的是,在实际应用中,需要根据实际情况设置适当的等待时间,以防止页面未完全加载完成导致获取不到图片元素。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值