Java 爬虫基础|图片下载

Java网络爬虫爬取百度页面 最近看到网上介绍爬虫的文章,觉得很有趣,那么心动不如行动,晚上回来的时间刚好用来码代码啦~~ 网络爬虫:按照一定的规则爬取网页上的信息,通常是爬取到一些URL之后然后对这些URL放入队列在一次次的进行搜索,具体不知道是DFS还是BFS了,这里的算法我没咋研究,因为本次做的爬虫实例比较简单,实现一个Java小程序,用来爬取百度页面的LOGO。 事实上爬虫的作用远大于此,本次例子仅为入门参考使用。 阅读详情

随着越来越多的人会网络爬虫技术,但是有的公司不想要数据随随便便爬取或者敏感数据防止泄露,就产生了许许多多的反爬虫策略:判断请求头、token、ip地址检测等等。所以简单的网页可以使用 Jsoup 工具进行爬取,但是一些网站由于安全性,防止爬取,所以我们需要手动添加一些请求头等信息,所以下面给大家介绍一款新的工具

HttpClient

Httpclient 可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。下载HttpClient

添加头部信息(用户代理)

//进行 GET 请求
HttpGet httpGet = new HttpGet(URL);
// 添加请求头
httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36");

现在我们想做一个下载网上好看的壁纸,但是一个一个下载有太麻烦,所以我们可以爬虫来实现这个功能。
图片爬取,其实就是将 IO 流保存成图片文件

下面是本人写的代码,仅用作学习。

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class BeautyGirl {
	// 爬取地点
	static String baseURL = "http://www.souutu.com";
	// 文件名称,从1开始
	static int k=1;
	public static void main(String[] args) throws ClientProtocolException, IOException {
		//本地保存路径,必须存在
		String dir="D:\\spider\\image\\girl\\"; 
		// 获取 HttpClient 执行对象
		CloseableHttpClient client = HttpClients.createDefault();
		// 子路径
		String next = "/mnmm/";
		while(true) {
			// 获取 Http 连接
			HttpGet httpGet = new HttpGet(baseURL+next);
			// 设置请求头
			httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36");
			CloseableHttpResponse execute = client.execute(httpGet); // 进行 http 请求
			HttpEntity entity = execute.getEntity(); 
			String html = EntityUtils.toString(entity); // 将获取的返回流转换为字符串,然后使用 Jsoup 工具解析
			Document document = Jsoup.parse(html);
			Elements select = document.select(".work-list-box .card-box");
			// 遍历每一个图片,获取图片路径,然后根据路径再进行 http 请求获取IO流
			for(Element e : select) {
				String imageLink = e.select("img").attr("lazysrc");
				System.out.println("图片名称:"+e.select("a").attr("title"));
				System.out.println("图片链接:"+imageLink.substring(0,imageLink.length()-12));
				HttpGet httpGetTmp = new HttpGet(imageLink.substring(0,imageLink.length()-12));
				httpGetTmp.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36");
				CloseableHttpResponse imageResponse = client.execute(httpGetTmp);
				HttpEntity imageEntity = imageResponse.getEntity();
				if(imageEntity.getContentType().getValue().contains("image")){
					downloadImage(dir,imageEntity.getContent());
				}else {
					System.out.println("链接图片异常");
				}
			}
			next = document.select(".nextlist").attr("href");
			if("".equals(next)) break;
			System.out.println("下一页:"+next);
		}
	}
	// 根据IO保存图片文件
	public static void downloadImage(String dir,InputStream is) throws IOException {
		FileUtils.copyInputStreamToFile(is, new File(dir+(k++)+".jpg"));
		System.out.println("正在下载"+dir+(k)+".jpg");
	}

}

 

 

java jsoup 网络爬虫 学习例子(三)图片 下载到本地 jsoup 网络爬虫 学习例子(三) 抓取豆瓣电影海报图片 下载到本地 package com.iteye.injavawetrust.img; /** * * @author InJavaWeTrust * */ public class Constants { /** * 存放海报图片目录 */ public static final String... 阅读详情

相关推荐

从零开始实现Java网页图片爬虫

爬虫(Crawler),又称网络蜘蛛(Web Spider),是一种自动获取网页内容的程序或脚本。它按照一定的规则,自动抓取互联网信息,是搜索引擎、数据挖掘、网络监测等应用中的关键技术。其主要作用在于高效地收集大规模数据,为后续的分析和应用提供原始材料。

weixin_32999557的博客 1525

java socket框架mina_如何使用Java网络通讯框架Mina自定义消息格式?

需要我们自定义CodeFilter来实现自有协议的解析和发送----------------一般来说在开发网络的C/S应用中,我们如果想从一长串字节流中得到我们要的数据并组织成业务上的pojo,我们一般用以下几种方法:1、采用固定长度的message2、用固定的头标示body的长度3、用基于文本的标示,如换行、回车等我们基于前两种方式的会比较多一些。下面是Mina官方的一个例子:首先定义一下网络协...

weixin_39906878的博客 225

Java网络爬虫实战:汽车之家图片抓取与处理

爬虫,又称网络蜘蛛(Web Spider)或网络机器人(Web Robot),是一种自动化获取网页内容的程序。它的基本功能是模拟用户访问网页,对网页内容进行解析和数据提取,然后存储到本地或数据库中。Jsoup是一个开源的Java库,它能够解析HTML文档。它提供了一套非常方便的API,不仅可以从网页中提取和操作数据,还能将HTML文档转换成DOM树结构,进而可以解析具体的元素或者属性。Jsoup广泛应用于网络爬虫的开发中,因其简单的API和对jQuery选择器的支持,深受开发者欢迎。

weixin_42126677的博客 1434

真香警告!教你用java爬虫下载网站的图片,

前言:前几天刚跑完2020福州男子半程马拉松,对于我一个跑渣来说能够跑完全程已经是善莫大焉了,跑完我累的不要不要的,不是这里痛就是那里痛,还是练少了,平常训练量不够,勉勉强强就上了。 跑的时候不知不觉被偷拍了,后来了解到这个是有专门的人去拍的,会根据你的号码牌识别到你这个人,群里有人说在一个微信公众号里可以查,于是我迫不及待的去搜下我的照片,结果 我的天呐,一张原图下载要20块,高清16元,本就不富裕的我,下载不起,实在下载不起啊,只能靠手机强大的截屏了,当然肯定不比原图质量啦。 对于不.

qq_19641369的博客 824

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 171

DDR March系列算法整理

一

不吃鱼的猫的博客 1万+

Java爬虫批量爬取图片

Java爬取妹子图片(2020年3月) 现在开始学习爬虫,发现大多数人的入门程序多是爬取美女图片,感觉这似乎是一个传统,所以我也就来继续这个传统吧。这是学习技术的,不是下载图片的! 因为我是Java方向的,所以我就使用Java来写这个小爬虫程序了。 目标网址:妹子图 使用技术:Java基础知识、HttpClient 4.x 、Jsoup 爬取目标:获取几张图片。 爬取思路 对于这种图片的获取,...

qq_40734247的博客 6580

告别ROS1思维:在ROS2 Humble上,用Python搞定MoveIt2机械臂控制的完整流程

本文详细介绍了在ROS2 Humble环境下使用Python控制MoveIt2机械臂的完整流程。从环境配置、架构变革到实战操作,涵盖URDF适配、Action接口编程及性能优化技巧,帮助开发者高效迁移ROS1项目至ROS2平台,实现工业级机械臂控制。

weixin_30352645的博客 450

java实现网络图片爬虫,只需5秒快速把整个网页上的图片全下载打包zip

我们经常需要用到互联网上的一些共享资源,图片就是资源的一种,怎么把网页上的图片批量下载下来?有时候我们需要把网页上的图片下载下来,但网页上图片那么多,怎么下载我们想要的东西呢,如果这个网页都是我们想要的图片,难道我们要一点一点一张一张右键下载吗? 当然不好,这里提供一段Java实现的网络爬虫抓图片代码,程序员同志有喜欢的记得收藏哦, 材料:必须会java开发,用到的核心jar Jsoup自己去网...

qishinihenhao的专栏 1597

Python主要智能优化算法库汇总

最近几年简单浏览和对比了一些智能算法的库。现将各种库的主要信息、相关优缺点简单整理如下,各位同学可根据自己的需求和喜好进行选择。 文章目录1、DEAP2、mealpy3、scikit-opt (国产良心)4、Geat2(国产用心)5、pygmo26、pyswarms7、SciPy(想不到吧)小结 1、DEAP 项目地址:https://github.com/DEAP/deap 安装: pip install deap 优点: 起点高,发表在Journal of Machine Learning Rese

半个冯博士 2万+

AWR2243的等效相位中心与虚拟通道

在俯仰维方向上,不重合的虚拟通道有8个,排序为1:4,9:12。每个虚拟阵元之间的间隔为lambda/2。实际y轴方向虚拟阵列只跨越了8*lambda/2的距离。等效相位中心与虚拟通道类似,只是每个相位中心之间间隔为lambda/4,实际y轴方向等效相位中心只跨越了8*lambda/4=7.59mm的距离

qq_50974341的博客 1981

Java 爬取网页图片并下载

源码; package a; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.*; import java.net.MalformedURLException; import java.net.URL; import ja

文轩 1118

Trimble RealWorks处理点云数据(一)之坐标转换

Trimble RealWorks处理点云数据之坐标转换

yilvyangguang520的博客 3622

java jsoup 网络爬虫 jsoup解析html Java爬虫 Jsoup爬虫 jsoup例子

java jsoup 网络爬虫 java jsoup 网络爬虫 学习例子(一)抓取豆瓣电影名称+推荐星级 java jsoup 网络爬虫 学习例子(二)只抓取豆瓣电影5星(力荐)电影名称 java jsoup 网络爬虫 学习例子(三)抓取豆瓣电影海报图片 下载到本地 java jsoup 网络爬虫 学习例子(四)抓取网页连接插入mysql数据库 java ...

18万+

微信小程序视频内容服务类目审核不过?绕过审核的两种思路!

虽然不推荐绕过官方审核,但在实际项目中,总有一些特殊情况:比如,最近开发的小程序涉及视频播放,提交审核时,被官方要求补充“教育服务 - 在线视频课程”类目。但我们的内容只是车辆使用介绍,并非教育课程,无法提供相应资质。该怎么办?很多开发者发现,小程序开发不是最难的,审核才是最难的。 微信为了规避法律风险,要求某些功能必须提供资质。例如:然而,并不是所有公司都能轻松申请到这些资质,甚至有些资质根本不适用于我们的业务,导致审核卡住,无法上线。就像我遇到的这个问题,官方要求我们补充“在线视频课程”类目,但实际业务

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3248

YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 5498

java网络爬虫之核心原理

  近来因为特殊需要,需要获得一定量的数据。这让我下意识的就想到了用网络爬虫来达成目的。 之前常听网络爬虫,也知道Python在这方面非常火热,但自我感觉还是对Java稍微熟悉一点,并且得知Java用来做爬虫也很方便,所以就去查了相关资料,在此分享我的心得。   没有枯燥的专业术语,文章的目的只是为了更好的理解其中的核心原理,帮助初学者快速入门! 一.网络三分游   网络爬虫网络爬虫,我们有必要...

luckyriver的博客 861

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java实现网络爬虫-Java入门

1. 网络爬虫 1.1 名称 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 1.2 简述 网络爬虫是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网...

Ronin_He的博客 480

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

简单的python爬虫教程:批量爬取图片

python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程。   网络爬虫,又被称为网页蜘蛛、网络机器人,爬虫分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、Deep Web爬虫这四种。“虫如其名”,爬虫并不是一种我们熟知的无脊椎动物中的节肢...

weixin_30361641的博客 3178

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

网络爬虫开发

网络爬虫开发 - 第一章 课程介绍 + 什么是爬虫 + 爬虫的意义 + 课程内容 + 前置知识 1.什么是爬虫 可以把互联网比喻成一张大网,爬虫就是在这张大网上不断爬取信息的程序 所以,一句话总结: 爬虫是请求网站并提取数据的自动化程序 爬虫的基本工作流程如下: 向指定的URL发送http请求 获取响应(HTML、XML、JSON、二进制等数据) 处理数据(解析DOM、JSON等) 将处理好的...

Calla_Lj的博客 845

Java爬虫实现图片下载

实现爬虫爬取页面的信息所需要的jar包 我是建立maven工程,pom添加的依赖信息 org.apache.httpcomponents httpclient 4.5.3 org.jsoup jsoup 1.10.3 org.apache.commons commons-lang3 3.7 commons-io commons-io 2.6 代码如下 ...

xhuihong的博客 2648

java爬虫爬取博客园数据

一、爬虫是什么 以下是百度百科上对于网络爬虫的定义: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 通俗的讲,爬虫就是能够自动访问互联网并将网站内容下载下来的的程序或脚本,类似一个机器人,能把别人网站的信息弄到自己的电脑上,再做一些过滤,筛...

Make Excellence a Habit 482

Java实现网络爬虫

昨晚用自己写的网络爬虫程序从某网站了下载了三万多张图片,很是爽快,今天跟大家分享几点内容。 一、内容摘要 1:Java也可以实现网络爬虫 2:Jsoup.jar包的简单使用 3:可以爬某网站的图片,动图以及压缩包 4:可以考虑用多线程加快下载速度 二、准备工作 1:安装Java JDK 2:下载Jsoup.jar 3:安装Eclipse或其他编程环境 4:新建一个Java项目,

泽涛优快云-blog 7737

网络爬虫——WebMagic的使用

WebMagic 是一个非常优秀的 Java 开源网络爬虫框架,其功能覆盖了网络爬虫的 整个生命周期,包括 URL 提取、网页内容下载、网页内容解析和数据存储。WebMagic 项目的源码可以在 GitHub 上进行下载。WebMagic 具有很好的灵活性和可扩展性,支持多线程数据采集和 URL 去重等。在实际应用中,用户可以通过定制 Pipeline 的方式实现其他数据存储需求,如将 数据存储到文本文件、Excel 中等。下面示例为定制的 Pipeline,其作用是将所采集的数据存储 到一个文件中。

吴声子夜歌的博客 2250

Java零基础入门——使用jsoup进行初级网络爬虫

文章目录0. 配置jsoup1. 实战爬虫知乎2. 实战汽车之家爬图 0. 配置jsoup 安装idea并打开创建class 打开idea,File->New->Project->Maven->Next----->Finish 在文件夹src->main->java下先创建package,再在该package下创建java class。 配置js...

Thomas_Cai的记忆殿堂 645
上一篇: Java 爬虫入门
下一篇: 计算机网络 TCP三次握手四次挥手
楚瑞涛
博客等级 码龄9年 57粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值