爬虫-web页面上的图片获取

目的:通过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文件夹已经有从网上得到的图片

获取图片成功。

该技术仅用于学习交流,切记用于非法途径!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值