PYTHON 爬取彼岸图片升级版

2024-04-15 23:36

本文主要是介绍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

这篇关于PYTHON 爬取彼岸图片升级版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907239

相关文章

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.