,,Python 爬虫批量爬取网页图片保存到本地的实现代码

,,Python 爬虫批量爬取网页图片保存到本地的实现代码

本文主要介绍Python爬虫批量抓取网页图片并保存在本地。本文通过示例代码非常详细的为您介绍,对您的学习或工作有一定的参考价值,有需要的朋友可以参考一下。

其实和抓取普通数据一样。但是,如果我们直接抓取数据,就会直接返回。抓取图像需要处理成二进制数据,保存为图像格式的数据文本(。jpg,png等。).

现在贴一个URL=https://img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjing-001 . jpg。

请复制上面的url并直接在浏览器中打开它。您将看到以下内容:

这是通过网页访问的这个网站的图片,所以我们可以直接用requests模块来请求这个图片,然后这个网站会把这个图片的数据返回给我们,然后我们就可以把数据写入本地的文件,这个比较简单。

导入请求

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

URL=' https://img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjingan-001 . jpg '

re=requests.get(url,headers=headers)

Print(re.status_code)#检查请求的状态,返回200表示正常。

Path='test.jpg'#文件存储地址

以(path,' wb ')为f: #将图片数据写到本地,WB表示二进制存储。

对于条目内容中的块(块大小=128):

f.write(块)

然后得到test.jpg的图片如下

点击查看如下:

只是下载成功了。很简单。

现在分析批量下载。我们把上面的代码打包成一个函数,所以对于每一个图像,都需要一个单独的名称和一个单独的图像文件,所以有下面的代码:

导入请求

def get_pictures(url,path):

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

re=requests.get(url,headers=headers)

Print(re.status_code)#检查请求的状态,返回200表示正常。

以(path,' wb ')为f: #将图片数据写到本地,WB表示二进制存储。

对于条目内容中的块(块大小=128):

f.write(块)

URL=' https://img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjingan-001 . jpg '

Path='test.jpg'#文件存储地址

获取图片(url,路径)

现在要批量下载图片,也就是批量获取图片的url,那么我们要分析网页的代码结构,打开原网站https://www.ivsky.com/tupian/bianxingjingang_v622/,你会看到下面的图片:

所以我们需要分别获取这个页面中显示的所有图片的URL,所以我们再次使用requests模块返回这个页面的当前内容,如下所示:

导入请求

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

URL=' https://www . ivsky . com/tu pian/bianxingjingan _ v 622/'

re=requests.get(url,headers=headers)

打印(回复文本)

运行会返回当前页面的页面结构内容,所以我们找到与图片相关的注释,也就是图片格式如。jpg或者。巴布亚新几内亚,如下:

带圈的* *//img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjing-017 . jpg * *是我们的图片网址,但是需要在前面加https:所以完整的网址是3359img.ivsky.com/img/tupian.

现在我们知道了这个结构,我们应该提取它并写出一个简单的解析公式:

导入请求

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

URL=' https://www . ivsky . com/tu pian/bianxingjingan _ v 622/'

re=requests.get(url,headers=headers)

def get_pictures_urls(文本):

st='img src=' '

m=长度(st)

i=0

n=len(文本)

Urs=[] #保存url

当在:

if text[i:i m]==st:

url=' '

对于范围内的j(I m,n):

如果文本[j]==' ' ':

i=j

URL . append(URL)

破裂

url=text[j]

i=1

返回URL

urls=get_pictures_urls(re.text)

对于url中的URL:

打印(url)

打印结果如下:

获取网址,现在直接放入开头的get_pictures函数,抓取图片。

导入请求

def get_pictures(url,path):

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

re=requests.get(url,headers=headers)

Print(re.status_code)#检查请求的状态,返回200表示正常。

以(path,' wb ')为f: #将图片数据写到本地,WB表示二进制存储。

对于条目内容中的块(块大小=128):

f.write(块)

def get_pictures_urls(文本):

st='img src=' '

m=长度(st)

i=0

n=len(文本)

Urs=[] #保存url

当在:

if text[i:i m]==st:

url=' '

对于范围内的j(I m,n):

如果文本[j]==' ' ':

i=j

URL . append(URL)

破裂

url=text[j]

i=1

返回URL

标题={

用户代理':' Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 ' }

URL=' https://www . ivsky . com/tu pian/bianxingjingan _ v 622/'

re=requests.get(url,headers=headers)

urs=Get _ pictures _ URLs(re . text)#获取当前页面所有图片的URL。

对于范围内的I(len(URL)):#批量抓取图片

URL=' https:' URL[I]

Path=' Transformers' str(i)'。' jpg '

获取图片(url,路径)

结果如下:

然后辣完,这里只是简单介绍一下批量抓取图片的流程。具体网站需要具体分析,所以本文尽可能详细的展示了批量抓取图片的过程分析,希望对你的学习有所帮助。有问题请及时指出,谢谢~

关于Python爬虫抓取web图片并保存到本地的这篇文章到此结束。更多相关Python爬虫抓取图片并保存在本地,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: