python 生成exe 图片资源_爱豆图片下载(含源码及打包exe可执行文件)
import requests
from lxml import etree
import os
# etree解析网页并返回
def parse(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
text = requests.get(url=url, headers=headers).text
html = etree.HTML(text)
return html
# 获取总页面数
def get_page(base_url):
html = parse(base_url)
pages = html.xpath('//div[@class="main"]//div[@class="pages"]/div/a[@class="num"][last()]/text()')[0]
return pages
# 获取每页超链接的url
def get_a_url(page_url):
html = parse(page_url)
a_url = html.xpath('//div[@class="w1180 clearfix"]//div[@class="tab_tj"]//ul[@class="clearfix"]//a/@href')
return a_url
# 获取每个超链接对应图片组的个数
def get_img_count(a_url):
html = parse(a_url)
img_count = len(html.xpath('//ul[@id="scroll"]/li'))
return img_count
# 获取每个超链接对应图片组的个数的url
def get_img_url(img_page_url):
html = parse(img_page_url)
img_url = html.xpath('//img[@class="pic-large"]/@src')[0]
return img_url
# 保存图片
def save_img(img_url, name):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
img_name = img_url.split('/')[-1]
res = requests.get(url=img_url, headers=headers)
img_data = res.content
if not os.path.isdir(f'.\\{name}_img'):
os.mkdir(f'.\\{name}_img')
with open(f'.\\{name}_img\\{img_name}', 'wb') as f:
f.write(img_data)
# 主函数
def main():
name = input("请输入想要下载的爱豆姓名:")
pinyin = input("请输入对应的汉语拼音:")
# 蔡徐坤是例外,单独处理
if name == '蔡徐坤':
pinyin = 'Angy'
base_url = f'http://www.win4000.com/mt/{pinyin}.html'
# 获取总页面数
try:
page_count = get_page(base_url)
except:
print("没有找到您的爱豆,要不换一个下载试试^_^")
exit()
# 获取用户想要下载的页面数
try:
page_num = int(input(f"爬取到该爱豆图片共【{page_count}】页,请输入想要下载的页数:"))
except:
print("输入数字都能错???,搁这玩我呢…………")
exit()
# 判断用户输入是否合法
if page_num > int(page_count) or page_num < 1:
print(f"你想上天啊,总共就 {page_count} 页,你输 {page_num} 想死啊 %¥#&……*&$^")
else:
try:
# 遍历下载页面
for i in range(1, page_num+1):
page_url = f'http://www.win4000.com/mt/{pinyin}_{str(i)}.html'
a_url_list = get_a_url(page_url)
print(f"第【{i}】页获取成功" + '\n')
a_url_list_len = len(a_url_list)
print(f"第【{i}】页共有[{a_url_list_len}]组图片")
a_count = int(input(f"你想下载第【{i}】页多少组图片呢?"))
# 遍历每页的每组图片
for group in range(a_count):
# 获取每页对应图片组的个数
img_count = get_img_count(a_url_list[group])
print(f"第【{i}】页第[{group+1}]组图片爬取中……" + '\n')
# 遍历每个组对应图片的url
for j in range(1, img_count+1):
img_page_url = os.path.splitext(a_url_list[group])[0] + f'_{j}' + os.path.splitext(a_url_list[group])[1]
img_url = get_img_url(img_page_url)
print(f"第【{i}】页第[{group+1}]组图片下载成功,正在保存该组第 {j} 张图片")
save_img(img_url, name)
print(f"第【{i}】页第[{group+1}]组图片保存成功" + "o(*^@^*)o" + '\n')
print(f"第【{i}】页下载完成" + "`(*>﹏
print(f"您的爱豆 {name} 图片 {page_num} 页下载完成,图片保存在当前文件夹下的 {name}_img 文件夹下")
input("按回车退出程序")
except:
print("未知错误,爬取失败。。。")
exit()
main()
python 生成exe 图片资源_爱豆图片下载(含源码及打包exe可执行文件)相关推荐
- 一起用python做个炫酷音乐播放器【V3.0含源码及打包exe】
前言 熟悉的小伙伴都知道,前段时间写了一篇关于音乐播放器的文章–Python自制一款炫酷音乐播放器.不少小伙伴私信我,对播放器提了一些改进建议,对播放器的一些逻辑bug优化完善.今天音乐播放器3.0版 ...
- python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...
原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...
- python爬虫05 - BeautifulSoup4的安装,下载,源码简介,使用。
1. bs4简介 1.1 基本概念 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库 1.2 源码分析 • github下载源码 • 安装 • pip inst ...
- 【Python】【Tkinter】png转ico小工具源码以及打包exe
我最近初学Python,学习到了Thinker部分,心血来潮做了一个图片小工具,我感觉我自己好像是码了一座屎山.下面我分几个部分来讲解一下我的思路,以及具体的步骤. 第一步,先看源码: 部分地方我作了 ...
- Qt creator5.7 OpenCV249之图片旋转(含源码下载)
下面先来介绍OpenCV关于图像选择的函数 void cv::flip( InputArray src OutputArray dst, int flipCode) src-是要处理的原始图像, ds ...
- Python实现多个excel文件合并源码及打包exe程序
##以下是源码filecombine.py,比较简单,有相应说明,也是结合别的代码自己修改的,用到的包需要提前装好. # -*- coding: utf-8 -*- import xlrd impor ...
- Qt creator5.7 OpenCV249之图片膨化(含源码下载)
首先介绍几个OpenCV的函数 void cv::dilate( inputArray src, outputArray dst, inputArray kernel, Point anchor=Po ...
- Qt creator5.7 OpenCV249之图片腐化(含源码下载)
首先介绍几个OpenCV的函数 void cv::erode( InputArray src, OutputArray dst, InputArray kernel, Point anchor=Poi ...
- Python制作的一款小软件(含源码)
运行示意图 程序下载百度云链接 上传CSDN是要下载币的,所以保存在百度云用于共享. 链接:https://pan.baidu.com/s/1-h7ovLMxOVLdVcMiJOknvA 提取码:5a ...
最新文章
- Ubuntu系统环境变量配置文件(转)
- JAVA 利用SimpleDateFormat将String转换为格式化的日期
- oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
- linux系统中 库分为静态库和,Linux系统中“动态库”和“静态库”那点事儿-【经典好文】...
- java scrollpane放按钮_java – 如何在BoxLayout上放置scrollPane?
- 5.修改本地库/远程仓库的地址
- android 修复工具下载,安卓数据恢复软件(FonePaw for Android)
- 增长量计算n+1原则_我是如何快速做资料分析的?(二)
- 如何在微信分享的网页中显示描述和图片
- Excel 给一列数据前批量添加字符
- java计算机毕业设计广东省梅州市宇恒节能科技有限公司(附源码、数据库)
- plop-template
- graphpad柱状图怎么加图例_科研绘图教程| 如何用Graphpad Prism绘制超复杂组合图?...
- MATLAB | 面积图、饼状图、水平柱状图的斜线填充(阴影填充)
- python翻译-Python翻译器
- 淮南计算机竞赛培训,关于公布2019年田家庵区中小学电脑制作比赛等三项比赛评比结果的通知...
- 关键词SEO排名优化的对策与流程
- 减肥的第3天 (想吃——柳州螺蛳粉 + 虎皮鸡脚 + 虎皮猪脚 + 七寸)
- html5如何插入avi视频,GIF Movie Gear
- php服务软件安装?宝塔服务器配置搭建一键完成
热门文章
- iOS中文件连接群晖服务器,教你使用群晖怎么在ios的“家庭‘’App(HomeKit)里添加Hom...
- 幼儿-综合素质【5】
- 【微信小程序】微信小程序提示Do not have handler in component
- 一个围绕中心点旋转的动画效果
- 中国房地产还能火多久?
- 前端----HTML 制作QQ空间练习
- v-model双向绑定原理
- 4部网页配色电子书库之第4部——网站配色方案赏析
- 分布式服务器框架之Servers.Core库实现 DES对称加密算法;SHA1信息摘要算法;MD5信息摘要算法
- c语言初阶(2-函数-上篇)