这篇文章将为大家详细讲解有关使用Python爬虫怎么将网页图片保存到本地,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
其实和爬取普通数据本质一样,不过我们直接爬取数据会直接返回,爬取图片需要处理成二进制数据保存成图片格式(jpg, png等)的数据文本。
现在贴一个url=https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang - 001. - jpg
请复制上面的url直接在某个浏览器打开,你会看到如下内容:
这就是通过网页访问到的该网站的该图片,于是我们可以直接利用请求模块,进行这个图片的请求,于是这个网站便会返回给我们该图片的数据,我们再把数据写入本地文件就行,比较简单。
import 请求 头={ & # 39;才能用户代理# 39;:,& # 39;Mozilla/5.0, (Windows NT 10.0;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/70.0.3538.25 Safari/537.36,核心/1.70.3861.400 QQBrowser/10.7.4313.400& # 39;} url=& # 39; https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang - 001. - jpg # 39; re=requests.get (url,头=标题) 打印(re.status_code) #查看请求状态,返回200说明正常=& # 39;路径test.jpg& # 39; #文件储存地址 with 开放(路径,& # 39;wb # 39;), as f: #把图片数据写入本地,世行表示二进制储存 ,,,,,for chunk 拷贝re.iter_content (chunk_size=128): ,,,,,,,f.write(块)
然后得到test.jpg图片,如下
点击打开查看如下:
便是下载成功辣,很简单吧。
现在分析下批量下载,我们将上面的代码打包成一个函数,于是针对每张图片,单独一个名字,单独一个图片文件请求,于是有如下代码:
import 请求 def get_pictures (url路径): 头={才能 ,,,& # 39;用户代理# 39;:,& # 39;Mozilla/5.0, (Windows NT 10.0;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/70.0.3538.25 Safari/537.36,核心/1.70.3861.400 QQBrowser/10.7.4313.400& # 39;}, re=才能requests.get (url,头=标题) 打印(re.status_code) #才能查看请求状态,返回200说明正常 with 才能;开放(路径,& # 39;wb # 39;), as f: #把图片数据写入本地,世行表示二进制储存 ,,,,,,,for chunk 拷贝re.iter_content (chunk_size=128): ,,,,,,,,,f.write(块) url=& # 39; https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang - 001. - jpg # 39;=& # 39;路径test.jpg& # 39; #文件储存地址 get_pictures (url路径)
现在要实现批量下载图片,也就是批量获得图片的网址,那么我们就得分析网页的代码结构,打开原始网站
于是我们需要分别得到该页面中显示的所有图片的url,于是我们再次用请求模块返回当前该页面的内容,如下:
import 请求 头={ ,,,& # 39;用户代理# 39;:,& # 39;Mozilla/5.0, (Windows NT 10.0;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/70.0.3538.25 Safari/537.36,核心/1.70.3861.400 QQBrowser/10.7.4313.400& # 39;} url=& # 39; https://www.ivsky.com/tupian/bianxingjingang_v622/& # 39; re=requests.get (url,头=标题) 打印(re.text)
运行会返回当前该页面的网页结构内容,于是我们找到和图片相关的也就是jpg或者png等图片格式的字条,如下:
上面圈出来的* *//img.ivsky.com/img/tupian/t/201008/05/bianxingjingang - 017. jpg * *便是我们的图片url,不过还需要前面加上https:,于是完成的url就是https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang - 017. jpg。
我们知道了这个结构,现在就是把这个提取出来,写个简单的解析式:
import 请求 头={ ,,,& # 39;用户代理# 39;:,& # 39;Mozilla/5.0, (Windows NT 10.0;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/70.0.3538.25 Safari/537.36,核心/1.70.3861.400 QQBrowser/10.7.4313.400& # 39;} url=& # 39; https://www.ivsky.com/tupian/bianxingjingang_v622/& # 39; re=requests.get (url,头=标题) def get_pictures_urls(文本): 圣才能=& # 39;https://www.yisu.com/zixun/img src=" m=len (st) 我=0 n=len(文本) url=[] #储存的url 虽然我使用Python爬虫怎么将网页图片保存到本地