PYTHON 爬取彼岸图片升级版

import requests
from lxml import etree
import time
import os
from concurrent.futures import ThreadPoolExecutordate_dict = {'动漫': 'dongman','游戏': 'youxi','美女': 'meinv','风景': 'fengjing','影视': 'yingshi','汽车': 'qiche','人物': 'renwu','动物': 'dongwu','宗教': 'zongjiao','北京': 'beijing'
}def get_value_by_key(key):# 检查键是否在字典中if key in date_dict:# 如果键存在,输出对应的值value = date_dict[key]else:# 如果键不存在,输出错误信息print("输入的键不存在于字典中,请重新输入。")value = Nonereturn value# 获取正确的网络地址并返回图片的URL列表
def get_page(page_num, value):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0'}url = f'https://pic.netbian.com/4k{value}/index_{page_num}.html'response = requests.get(url, headers=header)html = response.textet = etree.HTML(html)result = et.xpath("//img/@src")urls = ["https://pic.netbian.com" + url for url in result]return urls# 获取指定页面的图片名字列表
def get_name(html_url):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0'}response = requests.get(html_url, headers=header)response.encoding = response.apparent_encoding  # 万能转码式html = response.textet = etree.HTML(html)names = et.xpath("//img/@alt")return names# 清理文件名,去除非法字符
def clean_filename(name):return ''.join(e for e in name if e.isalnum() or e in ' ._-')# 保存图片到文件
def save_image(url, name, base_path):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0'}name = clean_filename(name)  # 清理文件名file_name = os.path.join(base_path, name + '.jpg')  # 假设所有图片都是jpg格式response = requests.get(url, headers=header)time.sleep(1)if response.status_code == 200:with open(file_name, 'wb') as f:f.write(response.content)print(f'图片 {file_name} 保存完成!')else:print(f'请求图片 {url} 失败,状态码:{response.status_code}')# 主函数
def main():try:os.makedirs('D:\\python爬图片文件', exist_ok=True)except OSError as e:print(f"创建文件夹时发生错误: {e}")#如果电脑里面没有文件可以使用os创建一个文件夹base_path = 'D:\\python爬图片文件'  # 图片保存的基础路径key = input("请输入一个键(例如:动漫):")value = get_value_by_key(key)if value is not None:with ThreadPoolExecutor(max_workers=8) as executor:  # 最多同时开8个线程num = int(input('请输入你想获取的页数:'))for i in range(1, num-1):  # 假设我们只爬取前4页,根据需要调整范围urls = get_page(i, value)names = get_name(f'https://pic.netbian.com/4k{value}/index_{i}.html')for url, name in zip(urls, names):executor.submit(save_image, url, name, base_path)print("爬取完成!")if __name__ == '__main__':main()

这个代码是关于彼岸图网爬取的升级版可以选择类型和页数并且使用多线程速度很快!

注意:爬取的图片的文件在你的电脑的D:\\python爬图片文件文件下可以自己去找!

下面是我打包好的exe程序,没有python环境也可以执行:
链接:https://pan.baidu.com/s/1IrKjKKgY1wkx8D_WnPr3GA?pwd=sn2r 
提取码:sn2r

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.4.14力扣每日一题——设计哈希集合

2024.4.14 题目来源我的题解方法一 链表数组 题目来源 力扣每日一题;题序:705 我的题解 方法一 链表数组 由于给定限制次数为10000,所以构造一个长度为10001的链表数组。对于add操作先看数组对应的位置是否为null或者为空,若是…

免费的 ChatGPT 网站(六个)

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、insCode二、讯飞星火三、豆包四、文心一言五、通义千问六、360智脑 现在智能…

【窃取网络游戏中虚拟物品的行为定性】

虚拟物品随着网络游戏产业的不断发展越来越走入人们的生活。与此同时,窃取网络游戏中虚拟装备、货币等侵害网络游戏虚拟物品的行为屡见不鲜,对网络游戏产业环境造成破坏的同时对游戏参与者的权益也造成了一定的侵害。对于窃取网络游戏虚拟物品的行为&…

2024-04-13 问AI: 什么是h5py文件?

文心一言 h5py文件是HDF5文件的一种Python接口表示形式。HDF5(Hierarchical Data Format 5)是一种用于存储和组织大量科学数据的文件格式。h5py是Python中的一个库,提供了对HDF5文件的高级封装,使得在Python中处理HDF5文件变得更…

Docker - Nginx

博文目录 文章目录 说明命令 说明 Docker Hub Nginx 数据卷数据卷印射在容器内的路径nginx.conf/etc/nginxnginx.html/usr/share/nginx/htmlnginx.log/var/log/nginx 容器内的路径说明/etc/nginx/nginx.conf配置文件/etc/nginx/conf.d配置目录/usr/share/nginx/html静态目录/…

【漏洞复现】WordPress LayerSlider插件SQL注入漏洞复现

声明:亲爱的读者,我们诚挚地提醒您,Aniya网络安全的技术文章仅供个人研究学习参考。任何因传播或利用本实验室提供的信息而造成的直接或间接后果及损失,均由使用者自行承担责任。Aniya网络安全及作者对此概不负责。如有侵权&#…

C数据结构:双向链表(带头循环)

前言 链表分多种,分别为 不带头不循环单向链表、不带头循环单向链表、带头循环单向链表、带头不循环单向链表 不带头不循环双向链表、不带头循环双向链表、带头循环双向链表、带头不循环双向链表 一共八种 在前一篇博客中完成的单链表即为不带头不循环单向链表…

杰发科技AC7840——CAN通信简介(5)_可变波特率设置

0. 简介 设置可变波特率时候,遇到2个坑,在此记录下来 使用该函数即可 can_time_segment_t bitrate2 s_canBitrate[CAN_BITRATE_250K]; CAN_DRV_SetBitrate(instance, &bitrate2); 1. 波特率指针注意不要空 查看设置波特率的接口,发现…

儿童学编程的好处

儿童学习编程是当今社会中越来越受到关注的话题。随着科技的发展,编程已经成为一种基本的技能,而儿童正是未来的希望。因此,让儿童学习编程具有诸多好处。 首先,学习编程可以培养儿童的逻辑思维能力。编程是一门需要严密思维和逻…

nodejs安装常用命令

安装 Node.js 后&#xff0c;你可以在命令行中使用以下常用命令&#xff1a; node&#xff1a;启动 Node.js 的交互式解释器&#xff0c;可以直接在命令行中执行 JavaScript 代码。 npm install <package-name>&#xff1a;安装一个 Node.js 模块&#xff0c;<packag…

吉他弹唱谱怎么制作 Guitar Pro 怎么写弹简谱 Guitar Pro8.02简谱

学习如何制作吉他弹唱谱是提升音乐创作和表现能力的重要一环。借助专业的软件工具如Guitar Pro&#xff0c;可以轻松地将音乐创意转化为可视化的乐谱&#xff0c;使演奏和分享变得更加便捷和高效。下面我们来看看吉他弹唱谱怎么制作&#xff0c;Guitar Pro 怎么写弹简谱的相关内…

el-date-picker调用回车事件

elementui的el-date-picker想要调用回车事件&#xff1a; <el-date-pickerv-model"state.date"type"date"value-format"YYYY-MM-DD HH:mm:ss"placeholder"选择日期"clearablekeydown.enter"handleDown"></el-date-…

threejs--01整体api整理

文章目录 threejs学习01 threejs的基本组成1. threejs的坐标系2. threejs的场景3. threejs相机的类型4. threejs光4.1 threejs的光4.2 threejs的阴影 5. threejs的物体5.1 threejs的曲线5.2 threejs的几何体5.3 threejs的材质5.3 threejs的纹理 6. threejs的动画6.1 threejs的动…

Llama 3下月正式发布,继续开源!

4月10日&#xff0c;Techcrunch消息&#xff0c;Meta在本周伦敦举办的一场活动中确定&#xff0c;下个月将正式发布Llama 3并且继续开源。 Meta全球事务总裁Nick Clegg表示&#xff0c;我们希望在下个月&#xff0c;甚至更短的时间内&#xff0c;正式推出新一代基础模型Llama …

云服务器宝塔ssh:tabby 部署SpringBoot项目

阿里云服务器 ----》 linux 云服务器 &#xff0c; ip , root 密码 tabby -----> ssh 连接工具 &#xff0c;用这个连接云服务器 去操作 云服务器 宝塔 -------》 可视化工具&#xff0c;快速部署 云服务器的 安装环境 &#xff0c;部署项目。 tabby :Tabby Terminal 下载…

【华为OD机试】比赛的冠亚季军(深度优先搜索—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

ubuntu netplan 设置dns

ubuntu netplan 设置dns 要配置netplan&#xff0c;请/etc/netplan/使用.yaml扩展名&#xff08;例如/etc/netplan/config.yaml&#xff09;保存配置文件&#xff0c;然后运行sudo netplan apply。此命令解析配置并将其应用于系统。 配置文件格式 参照 这里. eth0:dhcp4: noa…

机器学习和深度学习--李宏毅(笔记与个人理解)Day9

Day9 Logistic Regression&#xff08;内涵&#xff0c;熵和交叉熵的详解&#xff09; 中间打了一天的gta5&#xff0c;图书馆闭馆正好npy 不舒服那天天气不好&#xff0c;哈哈哈哈哈总之各种理由吧&#xff0c;导致昨天没弄起来&#xff0c;今天补更&#xff01; 这里重点注意…

git修改某个远端服务器的地址的方式以及4种remote(git remote set-url origin xxx、git remote -v)

假设本地有1个远端仓库&#xff0c;默认一般叫origin&#xff0c;原来对应的git url是&#xff1a;gitxxx.git # 查看方式&#xff1a; git remote -v# 修改方式&#xff1a; git地址url指定远程仓库&#xff1a;&#xff08;常用&#xff09; git remote set-url origin gitn…

面试官:实战中用过CountDownLatch吗?详细说一说,我:啊这...

写在开头 在很多的面经中都看到过提问 CountDownLatch 的问题&#xff0c;正好我们最近也在梳理学习AQS&#xff08;抽象队列同步器&#xff09;&#xff0c;而CountDownLatch又是其中典型的代表&#xff0c;我们今天就继续来学一下这个同步工具类&#xff01; CountDownLatc…