用python爬取网页图片

用python爬取网页图片
首先导入两个库

import requests
import re

导入方法,在终端依次输入以下指令

pip install requeste
pip install re

废话不多说,上代码

import requests
import re


def getHtml(url):
    try:
        # 获取网页
        r = requests.get(url)
        # 判断返回的Response类型状态是不是200。如果是200,他将表示返回的内容是正确的,如果不是200,就会产生一个HttpError的异常
        r.raise_for_status()
        # 编码类型
        r.encoding = 'utf-8'
        # 打印趴下来的网页
        # print(r.text)
        return r.text
    except:
        # 抛出异常
        return "error"


# 以逐浪小说网为例,里面图片不多,比较适合做示范
def getImg(html):
    # 正则表达式匹配趴下来的网页中以http开头,以html结尾的内容
    reg = r'src="(http.+?\.jpg)"'
    # 把reg中的内容转成一个列表
    imglist = re.findall(reg, html)
    i = 0
    # 这里做的判断主要是因为提取出来的img地址中的第12-56有两个地址,产生了异常,无法下载图片,不理解的话可以在打印imglist看一下
    listi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 57, 58, 59, 60, 61]
    for url in imglist:
        if i in listi:
            # 在列表中的的图片地址是正常的
            response = requests.get(url)
            i = i + 1
        else:
            # 不在列表中的图片地址是异常的,所以要进行截取
            reg1 = imglist[i]
            reg2 = reg1[46:]
            response = requests.get(reg2)
            i = i + 1
        # 打开文件夹,把图片存进去
        with open(".\\wb\\" + str(i) + ".jpg", "wb") as fd:
            fd.write(response.content)
            print('图片', i, "保存成功\n")


html = getHtml("http://www.zhulang.com/")
getImg(html)

注意:
1、爬取的图片地址有时候会有问题,所以如果图片不展示的话,可以看看是不是地址错误
2、有些网页需要添加请求头或者其他一些参数的,可以自行去了解
3、有些网站设置了反爬虫的话,暂时还不清楚怎么解决

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值