目的:通过python获取网页上的图片
1.安装python环境
python下载地址:https://www.python.org/downloads/release/python-395/
下载成功之后双击安装即可
安装时记得勾选add python 3.5 to PATH(这里根据自己的python版本而定)
如果忘记勾选,那么在cmd命令窗口验证python是否安装成功时,就会报python不是内部命令。
针对这个问题我们需要配置下python的环境变量。找到我们安装python的路径
可以找到python的安装路径,把一下两个路径添加到用户变量即可
C:\Users\veam\AppData\Local\Programs\Python\Python39\Scripts
C:\Users\veam\AppData\Local\Programs\Python\Python39
出现此页面表示python安装成功
2.编写python脚本
创建记事本,重命名为web页面图片获取.py
import urllib.request as u #调用ullib模块
import re #调用re模块
def get_html(url): #从网页获取整个网页信息
request = u.Request(url) #定义请求实例
request.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0")#添加头部信息
response = u.urlopen(request) #接受响应
html = response.read() #字符串读取
#html = str(html1,encoding="utf8") #2进制字符串转为字符一定要指定默认字符编码
return html
def get_imgs(html): # 获取各个图片的源码
imgs_list = []
imgs = re.findall(b"http://i-cdn.ibuka.cn/pics/221735/65537/\w*.jpg",html) #利用正则表达式找出图片格式
for i in imgs:
imgs_list.append(str(i,encoding="utf8"))
return imgs_list
def get_img(imglist): #把图片以二进制保存到指定位置
num=1
for url in imglist:
img_byte = get_html(url)
with open("C:\\Users\\veam\\Desktop\\123\\%s.jpg" %num,"wb") as f:
f.write(img_byte)
num+=1
if __name__ == "__main__":
url = "http://www.buka.cn/view/221735/65537.html"#网页地址,我们这里以布卡漫画为例
html = get_html(url) #调用get_html()函数
#print(html)
imglist = get_imgs(html) #调用get_imgs()函数
#print(imglist)
get_img(imglist) #调用get_img()函数
3.运行python脚本,得到web页面上的图片
在自己的桌面上创建接收图片的文件夹,我这里建立123文件夹来接受图片(这里要和脚本中的名称一致)。win+R 输入powershell,找到自己写的脚本web页面图片获取.py。运行脚本
如图表示运行成功。
检查桌面上的123文件夹已经有从网上得到的图片
获取图片成功。
该技术仅用于学习交流,切记用于非法途径!!!