jsoup怎么把爬取网站的图片保存到本地
这次给大家带来jsoup怎么把爬取网站的图片保存到本地,jsoup把爬取网站的图片保存到本地的注意事项有哪些,下面就是实战案例,一起来看一下。
因为项目需求,需要车辆品牌信息和车系信息,昨天用一天时间研究了jsoup爬取网站信息。项目是用maven+spring+springmvc+mybatis写的。
jsoup开发指南地址
这个是需要爬取网站的地址 https://car.autohome.com.cn/zhaoche/pinpai/
1.首先在pom.xml中添加依赖
因为需要把图片保存到本地所以又添加了commons-net包
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.3</version> </dependency>
2.爬虫代码的实现
@Controller @RequestMapping("/car/") public class CarController { //图片保存路径 private static final String saveImgPath="C://imgs"; /** * @Title: insert 品牌名称 和图片爬取和添加 * @Description: * @param @throws IOException * @return void * @throws * @date 2018年1月29日 下午4:42:57 */ @RequestMapping("add") public void insert() throws IOException { //定义想要爬取数据的地址 String url = "https://car.autohome.com.cn/zhaoche/pinpai/"; //获取网页文本 Document doc = Jsoup.connect(url).get(); //根据类名获取文本内容 Elements elementsByClass = doc.getElementsByClass("uibox-con"); //遍历类的集合 for (Element element : elementsByClass) { //获取类的子标签数量 int childNodeSize_1 = element.childNodeSize(); //循环获取子标签内的内容 for (int i = 0; i < childNodeSize_1; i++) { //获取车标图片地址 String tupian = element.child(i).child(0).child(0).child(0).child(0).attr("src"); //获取品牌名称 String pinpai = element.child(i).child(0).child(1).text(); //输出获取内容看是否正确 System.out.println("车标图片地址-----------" + tupian); System.out.println("品牌-----------" + pinpai); System.out.println(); //把车标图片保存到本地 String tupian_1 = "http:"+tupian; //连接url URL url1 = new URL(tupian_1); URLConnection uri=url1.openConnection(); //获取数据流 InputStream is=uri.getInputStream(); //获取后缀名 String imageName = tupian.substring(tupian.lastIndexOf("/") + 1,tupian.length()); //写入数据流 OutputStream os = new FileOutputStream(new File(saveImgPath, imageName)); byte[] buf = new byte[1024]; int p=0; while((p=is.read(buf))!=-1){ os.write(buf, 0, p); } /** * 因为每个品牌下有多个合资工厂 * 比如一汽大众和上海大众还有进口大众 * 所有需要循环获取合资工厂名称和旗下 * 车系 */ //获取车系数量 int childNodeSize_2 = element.child(i).child(1).child(0).childNodeSize(); /** * 获取标签下子标签数量 * 如果等于1则没有其他合资工厂 */ int childNodeSize_3 = element.child(i).child(1).childNodeSize(); if(childNodeSize_3==1){ //循环获取车系信息 for (int j = 0; j < childNodeSize_2; j++) { String chexi = element.child(i).child(1).child(0).child(j).child(0).child(0).text(); System.out.println("车系-----------" + chexi); } }else{ /** * 如果childNodeSize_3大于1 * 则有多个合资工厂 */ //分别获取各个合资工厂旗下车系 for (int j = 0; j < childNodeSize_3; j++) { int childNodeSize_4 = element.child(i).child(1).child(j).childNodeSize(); /** * 如果j是单数则是合资工厂名称 * 否则是车系信息 */ int k = j%2; if(k==0){ //获取合资工厂信息 String hezipinpai = element.child(i).child(1).child(j).child(0).text(); System.out.println("合资企业名称-----------" + hezipinpai); }else{ //int childNodeSize_5 = element.child(i).child(1).child(0).childNodeSize(); //循环获取合资工厂车系信息 for(int l = 0; l < childNodeSize_4; l++){ String chexi = element.child(i).child(1).child(j).child(l).child(0).child(0).text(); System.out.println("车系-----------" + chexi); } } } } System.out.println("************************"); System.out.println("************************"); } } } }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
getBoundingClientRect使用方法及兼容性处理
以上是jsoup怎么把爬取网站的图片保存到本地的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

小红书拥有丰富的内容,让大家可以在这里自由的查看,让你们每天都可以使用这个软件解闷,为自己带来帮助,在使用这个软件的过程中,有时候会看到各种的美图,很多人想要保存起来,但是保存后的图片,都有水印,非常的影响,大家都想要知道在这里该怎么保存没有水印的图片,小编为你们提供方法,有需要的小伙伴们,都可以马上的了解使用起来! 1.点击图片右上角的“…”复制链接 2.打开微信小程序 3.微信小程序搜索红薯库 4.进入红薯库确定获取链接 5.获取图片保存至手机相册

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

1、打开抖音app,找到想要下载保存的视频,点击右下角的【分享】按钮。2、在出现的弹窗中,向右滑动第二排的功能按钮,找到并点击【保存本地】。3、此时会出现新的弹窗,用户能够看到该视频的下载进度,等待下载完成。4、下载完成后,会有【已保存,请去相册查看】的提示,这样刚刚下载的视频就成功的保存至用户的手机相册里面了。

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

视频号是一款热门的短视频应用程序,让用户可以拍摄、编辑和分享自己制作的视频。然而,有时候我们可能会想要将这些精彩的视频保存到我们的相册中,以便在需要的时候随时回顾。所以,接下来我将分享一些方法,教你如何将视频号的视频保存到相册。可以通过视频号应用程序自带的功能来保存视频。打开应用程序,找到需要保存的视频。点击视频右下角的选项图标,会弹出一个菜单,选择“保存到相册”。这样就能将视频保存到手机相册中。方法二是通过截屏的方式保存视频。这种方法比较直接,但是保存的图片会包含视频控制条等元素,不够纯净。你

很多用户使用惠普打印机扫描文件过后,不知道扫描的文件保存到哪里去了,想要找一下在哪里,只要在我的电脑中搜索如期就可以进行搜索了。惠普打印机扫描的文件保存在哪儿:1、首先打开我的电脑。2、然后输入日期进行搜索。3、接着就可以找到扫描的文件了。4、打印机驱动安装之后会有一个打印机多功能机辅助软件,把它打开。5、最后点击扫描文件夹图标中就可以找到文件了。
