Python 批量爬取猫咪图片实现千图成像

前言

使用 Python 爬取猫咪图片,并为猫咪🐱制作千图成像!

爬取猫咪图片

本文使用的 Python 版本是 3.10.0 版本,可直接在官网下载:www.python.org 。

Pythonn 的安装配置过程在此不做详细介绍,网上随意搜都是教程!

1、爬取绘艺素材网站

爬取网站:​猫咪图片

首先安装必须的库:

pip install BeautifulSoup4
pip install requests
pip install urllib3
pip install lxml
复制代码

爬取图片代码:

from bs4 import BeautifulSoup
import requests
import urllib.request
import os

# 第一页猫咪图片网址
url = 'https://www.huiyi8.com/tupian/tag-%E7%8C%AB%E5%92%AA/1.html'
# 图片保存路径,这里 r 表示不转义
path = r"/Users/lpc/Downloads/cats/"
# 判断目录是否存在,存在则跳过,不存在则创建
if os.path.exists(path):
    pass
else:
    os.mkdir(path)


# 获得所有猫咪图片网页地址
def allpage():
    all_url = []
    # 循环翻页次数 20 次
    for i in range(1, 20):
        # 替换翻页的页数,这里的 [-6] 是指网页地址倒数第 6 位
        each_url = url.replace(url[-6], str(i))
        # 将所有获取的 url 加入 all_url 数组
        all_url.append(each_url)
    # 返回所有获取到的地址
    return all_url


# 主函数入口
if __name__ == '__main__':
    # 调用 allpage 函数获取所有网页地址
    img_url = allpage()
    for url in img_url:
        # 获得网页源代码
        requ = requests.get(url)
        req = requ.text.encode(requ.encoding).decode()
        html = BeautifulSoup(req, 'lxml')
        # 添加一个 url 数组
        img_urls = []
        # 获取 html 中所有 img 标签的内容
        for img in html.find_all('img'):
            #  筛选匹配 src 标签内容以 http 开头,以 jpg 结束
            if img["src"].startswith('http') and img["src"].endswith("jpg"):
                # 将符合条件的 img 标签加入 img_urls 数组
                img_urls.append(img)
        # 循环数组中所有 src
        for k in img_urls:
            # 获取图片 url
            img = k.get('src')
            # 获取图片名称,强制类型转换很重要
            name = str(k.get('alt'))
            type(name)
            # 给图片命名
            file_name = path + name + '.jpg'
            # 通过图片 url 和图片名称下载猫咪图片
            with open(file_name, "wb") as f, requests.get(img) as res:
                f.write(res.content)
            # 打印爬取的图片
            print(img, file_name)
复制代码

📢 注意: 以上代码无法直接复制运行,需要修改下载图片路径:/Users/lpc/Downloads/cats,请修改为读者本地的保存路径!

爬取成功:

共爬取 346 张猫咪图片!

2、爬取 ZOL 网站

爬取 ZOL 网址:萌猫
 

爬取代码:

import requests
import time
import os
from lxml import etree

# 请求的路径
url = 'https://desk.zol.com.cn/dongwu/mengmao/1.html'
# 图片保存路径,这里 r 表示不转义
path = r"/Users/lpc/Downloads/ZOL/"
# 这里是你要保存的路径位置 前面的r 表示这段不转义
if os.path.exists(path):  # 判断目录是否存在,存在则跳过,不存在则创建
    pass
else:
    os.mkdir(path)
# 请求头
headers = {"Referer": "Referer: http://desk.zol.com.cn/dongman/1920x1080/",
           "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36", }

headers2 = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0", }


def allpage():  # 获得所有网页
    all_url = []
    for i in range(1, 4):  # 循环翻页次数
        each_url = url.replace(url[-6], str(i))  # 替换
        all_url.append(each_url)
    return all_url  # 返回地址列表


# TODO 获取到Html页面进行解析
if __name__ == '__main__':
    img_url = allpage()  # 调用函数
    for url in img_url:
        # 发送请求
        resq = requests.get(url, headers&#
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值