python批量爬取图片(超简单教程)

request的python抓取图片抓取功能:对给入的多个网址:每个网址的所有图片进行抓取并保存指定的文件中。

本版本小白版本拿来即用,作为研究工具。算法学习。

限制:get请求

安装包要求:

pip install requests

话不多说,直接上代码:

首先写一个函数抓取一张图片get_image(url,name)

学习版

(1)文件名:抓取批量图片.py

import requests,re
def get_image(url,name):#抓取一张图片,name为图片文件名称,例如name.png,这个见下面迭代使用headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"}#爬虫的时候需要headers和url获取数据(人在浏览网页时这些都是浏览器需要做的)res=requests.get(url,headers=headers)#requests得到图片内容with open("D://pythonProject1//toimage//"+f"{name}.png",'wb') as f:#建立一个空白png文件#D://pythonProject1//toimage//是保存路径,一张照片的位置例如D://pythonProject1//toimage//1.png,不要忘了末尾的//,路径格式使用python格式f.write(res.content)#将requests得到的图片内容写入空白png文件f.close()#关闭文件,养成良好习惯
def get_urls(url):#获取url当前页面所有urls#你想爬取的网址的每一个url对应多个图片,
#每个图片对应一个url,这个函数主要是对给出的多个urls中的一个url来获取该url对应所有图片的urlheaders={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"}res=requests.get(url,headers=headers)text=res.texturls=re.findall('src="(//.*?)"',text)#获取url,需要具体到网页源代码里查看url格式,来进行修改第一个参数return urls
with open('ssr.html','r',encoding="UTF-8") as f:#这里ssr.html是一个包含用户想要爬取的网站text=f.read()url0 = re.findall('"(.*?)"', text)#读取ssr.html的所有urli=1for url_0 in url0:#url0是ssr.html所有url集合,url_0为该集合的元素url1=get_urls(url_0)#url1是url_0所在网页的所有图片的url的集合for url_1 in url1:#url_1是图片的urlurl_1="http:"+url_1get_image(url_1,i)i+=1

(2)文件名:ssr.html

随便写一下:




url


"https://www.bilibili.com/"
"https://live.bilibili.com/?spm_id_from=666.4.0.0"
"https://show.bilibili.com/platform/home.html?msource=pc_web&spm_id_from=333.1007.0.0"
"https://manga.bilibili.com/?from=bill_top_mnav&spm_id_from=333.1007.0.0"
"https://www.bilibili.com/match/home/?spm_id_from=333.1007.0.0"

这样,我们想要爬取的网址的图片都会保存到指定的文件夹!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部