如何从网页中下载图片

news/2024/7/19 9:51:05 标签: java, 爬虫
如何从网页中下载图片
如果做为爬虫很有必要从网页中下载图片到本地,那么我们利用jsoup来进行该操作,jsoup 是一个很不错的html解析器。
网页中下载图片需要这么两步操作
1.获取绝对路径
很多网页中用的是相对路径,因此获取图片的绝对路径很重要
方法一:我们就利用jsoup来获取
Element image = document.select("img").first();
String url = image.absUrl("src");
// url = http://www.example.com/images/chicken.jpg
或者
String url = image.attr("abs:src");
他们的前提利用connect方式获取而不是文件方式
Document doc = Jsoup.connect("http://jsoup.org").get();
Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"
方法二:利用jdk中url
URL url  = new URL("http://www.example.com/index.html");
URI uri = url.toURI();
System.out.println(uri.resolve("images/chicken.jpg").toString());
2.第二步则就是下载图片
URL   url   =   new   URL( "图片地址"); 
URLConnection   uc   =   url.openConnection(); 
InputStream   is   =   uc.getInputStream(); 
File   file   =   new   File( "本地路径 "); 
FileOutputStream   out   =   new   FileOutputStream(file); 
int   i=0; 
while   ((i=is.read())!=-1)   { 
out.write(i); 
is.close();

http://www.niftyadmin.cn/n/1227648.html

相关文章

matlab或_如何自学MATLAB

最近几周一直在忙实战训练营,除了参与的朋友有所收获之外,我也是深有感触。所以,今天我想聊一聊,如何自学MATLAB。关注这个公众号的老朋友,一定还记得,两年前我曾经写过一篇关于MATLAB自学的文章。今天&…

python自动化测试框架结构_Python接口自动化测试框架思想以及源码结构

#-*-codingutf-8-*- #author:shichao import requests import unittest import json class MyTest(unittest.TestCase): #封装测试环境的初始化和还原的类 def setUp(self): #放对数据可操作的代码,如对mysql、momgodb的初始化等,这里不对数据库进行操作&#xff01…

tomcat 调内存

一、java.lang.OutOfMemoryError: PermGen space 错误解决办法:修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS"-server -XX:PermSize64M -XX:MaxPermSize128m 二、java.l…

python笔记手写照片_Python处理手写笔记

下载W3Cschool手机App,0基础随时随地学编程导语 利用Python实现手写笔记的压缩与增强。 至于起因大概是: 这个内容很有趣。。。 ——> 说了等于没说。T_T 相关文件 密码: 47ws 参考文献 链接: https://mzucker.github.io/2016/09/20/notes…

异常积累:org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectio

启动时报错,原因如下: urljdbc:informix-sqli://192.168.2.114:8888/test:INFORMIXSERVERtestdb1;NEWLOCALEen_us;NEWCODESETzh_cn.gb;中的字符集错误,应改为:urljdbc:informix-sqli://192.168.2.114:8888/test:INFORMIXSERVERtes…

python3爬虫运行成功没有输出_微信公众号爬虫,看这个就足够了

我订阅了 253 个公众号,有时候想再找之前读过的文章,发现搜索起来特别困难,如果忘了收藏,估计得找半小时,更让人无语的是,文章已经发布者删除,或者文章因违规被删除。那么有没有这样的爬虫&…

非主流并发工具之 CountDownLatch

CountDownLatch 是一个用来倒计数的咚咚。如果某项任务可以拆分成若干个子任务同时进行,然后等待所有的子任务完成,可以考虑使用它。 该类的用法非常简单。首先构造一个 CountDownLatch,唯一的参数是任务数量,一旦构造完毕就不能…

双色球软件设计思路及初步源码

软件功能: 一.双色球共1107568注二等奖,这些注里可以过滤掉的垃圾号如下: 1.六连号、五连号、四连号、三连号、甚至二连号 2.全偶数、全气数奇数 3.已经开过的奖号 4.已经开过的奖号的五重号、四重号、三重号 所谓垃圾号很多&#xff0…