Python批量下载二次元壁纸

创创的小站
2021-04-01 / 1 评论 / 60 阅读 / 正在检测是否收录...

废话不多说直接上代码

演示抓取的网站:http://www.netbian.com/

首先要导入requests和BeautifulSoup库

库的下载安装请自行百度,其他步骤均有注释,请自行参考

import requests
from bs4 import BeautifulSoup

整体代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2021/4/1 16:26
# @Author  : 创创的小站 https://yanchuangblog.top/
# @FileName: 批量.py
# @Software: PyCharm
# -*- coding:utf8 -*-

# 1.导入requests和BeautifulSoup库
import requests
from bs4 import BeautifulSoup

# 2.设置爬取下来图片的存储位置,找到图片的下载地址
root = "D://p_images//"  # 存放路径
n = 1  # 标记
for i in range(13, 14):  # 网站翻页

    # 因为我爬取的网站翻页后的网址格式不同,因此需要分以下两种情况
    mainPage = f'http://www.netbian.com/dongman/index_{i}.htm'  # 主网页
    if i == 1:
        mainPage = f'http://www.netbian.com/dongman/index.htm'  # 主网页
    r = requests.get(mainPage)  # 爬取网页信息
    src = r.text
    soup = BeautifulSoup(src, 'html.parser')

    # 这里要注意的是,因为python中有class这个关键字,所以不能直接用class,要用class_
    soup_new = soup.find('div', class_='list')  # 找到class=list的div标签
    for li in soup_new.find_all('li'):  # 查看图片
        flag = li.find_all('div')  # 判断li标签下是否有div标签

        # 有div标签的话说明不是我们想要的,直接跳过(具体情况要视网站而定,此情况仅适用于该网站)
        # print(flag)
        if flag:
            continue
        # 获取第一个跳转页面地址
        page = f"http://www.netbian.com{li.a['href']}"  # 获取第一个跳转页面的地址
        # print(f"page:{li.a['href']}")
        # print(f"http://www.netbian.com{li.a['href']}")
        r1 = requests.get(page)  # 获取网页信息
        src1 = r1.text
        soup1 = BeautifulSoup(src1, 'html.parser')
        soup_newd = soup1.find('div', class_='pic')  # 找到该网页class为pic的div标签
        for p in soup_newd.find_all('p'):  # 找到最大分辨率的图片
            # print(f"http://www.netbian.com{a['href']}")
            # print(f"downpage:{p.a['href']}")
            downPage = f"http://www.netbian.com{p.a['href']}"  # 获取图片下载地址
            r2 = requests.get(downPage)
            src2 = r2.text
            soup2 = BeautifulSoup(src2, 'html.parser')
            soup_d = soup2.find('table', id='endimg')  # 找到id为endimg的table标签
            for td in soup_d.find_all('tr'):  # 下载图片
                imageUrl = f"{td.a['href']}"
                print(f"正在下载:{imageUrl.split('/')[-1]}")
                r3 = requests.get(imageUrl)
                image = r3.content  # 以2进制形式保存图片信息
                with open(root + imageUrl.split('/')[-1], 'wb') as f:  # 打开文件夹
                    f.write(image)  # 保存图片
                    print("已下载" + str(n) + "张图片")
                    n += 1  # 标记

批量抓取.png

这里我是抓取的动漫页面的图片,需要其他风格自行更改图片地址,欢迎留言。

1
赞赏排名 赞赏支持

免责声明:仅供学术研究使用。对于违反相关法律、造成危害的滥用行为,开发者不负任何责任。

特别说明:

1、 此文如未标注转载均为本站原创,自由转载请表明出处来源于本站。
2、本站所有資源僅供學習與參考,請勿用於商業用途,否則產生的一切後果將由您自己承擔!
3、本站資源來自網絡收集或本人原創,轉載請註明出處!
4、若資源侵犯了你的版權,請聯繫博主,我們會在24H內刪除侵權資源!

评论 (1)

取消
  1. 头像
    joke
    Android · Google Chrome

    学习学习

    回复