iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python+tkinter实现网站下载工具
  • 297
分享到

怎么使用Python+tkinter实现网站下载工具

2023-07-05 10:07:39 297人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下怎么使用python+tkinter实现网站下载工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发

今天小编给大家分享一下怎么使用python+tkinter实现网站下载工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

开发环境

Python 3.8: 解释器

PyCharm: 代码编辑器

本次项目案例步骤

先确定想要的功能,今天这个项目的主要功能为三个

  • 视频

  • 评论

  • 弹幕

创建一个简单的用户交互界面,简洁明了

先展示下完成品的效果

怎么使用Python+tkinter实现网站下载工具

界面

导入模块

import tkinter as tkfrom tkinter import ttkimport tkinter.messagebox

先创建个窗口

root = tk.Tk()root.title('哔站下载软件')root.geometry('367x134+200+200')#  透明度的值:0~1 也可以是小数点,0:全透明;1:全不透明root.attributes("-alpha", 0.9)root.mainloop()

怎么使用Python+tkinter实现网站下载工具

功能按键

text_label_1 = tk.Label(root, text='选择: ', font=('黑体', 15))text_label_1.grid(row=1, column=0, padx=5, pady=5)  number_int_var = tk.StringVar()# 创建一个下拉列表numberChosen = ttk.Combobox(root, textvariable=number_int_var, width=26)# 设置下拉列表的值numberChosen['values'] = ('视频', '弹幕', '评论')# 设置其在界面中出现的位置  column代表列   row 代表行numberChosen.grid(row=1, column=1, padx=5, pady=5)# 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值numberChosen.current(0)text_label = tk.Label(root, text='BV号:', font=('黑体', 15))text_label.grid(row=2, column=0, padx=5, pady=5)bv_va = tk.Variable()entry_1 = tk.Entry(root, font=('黑体', 15), textvariable=bv_va)entry_1.grid(row=2, column=1)Button_1 = tk.Button(root, text='下载', font=('黑体', 13))Button_1.grid(row=2, column=2, padx=5, pady=5)

怎么使用Python+tkinter实现网站下载工具

怎么使用Python+tkinter实现网站下载工具

主要功能代码编写

功能一

我们用正则来提取数据

正则表达式 —> 对于字符串数据类型进行提取/解析

re模块findall() ----> 告诉程序从什么地方去找什么数据

re.findall() '“title”:“(.?)“,“pubdate”', response.text

从 response.text 里面 去找 “title”:”(.?)”,“pubdate” 其中括号里内容就是我们要的

def Video(bv_id):    url = f'https://www.bilibili.com/video/{bv_id}'    # 把python代码伪装成浏览器  ---> 在开发者工具里面直接复制粘贴    headers = {        # 防盗链        'referer': 'Https://www.bilibili.com/video/',        # 浏览器基本身份标识 表示浏览器        'user-agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/101.0.0.0 Safari/537.36'    }    # 发送请求 ---> <Response [200]> 响应对象,  200状态码 表示请求成功    response = requests.get(url=url, headers=headers)    # 获取视频标题    title = re.findall('"title":"(.*?)","pubdate"', response.text)[0].replace(' ', '')    # 获取视频数据信息 前端标签两个两个一起    html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]    # 转换数据类型  字符串数据转成JSON字典数据类型    json_data = json.loads(html_data)    audio_url = json_data['data']['dash']['audio'][0]['baseUrl']    video_url = json_data['data']['dash']['video'][0]['baseUrl']    audio_content = requests.get(url=audio_url, headers=headers).content    video_content = requests.get(url=video_url, headers=headers).content    if not os.path.exists('video\\'):        os.mkdir('video\\')    with open('video\\' + title + '.mp3', mode='wb') as audio:        audio.write(audio_content)    with open('video\\' + title + '.mp4', mode='wb') as video:        video.write(video_content)    return title

功能二

这个功能,前段时间已经发布过相关的文章教程

请看这里:用Python获取弹幕的两种方式(一种简单但量少,另一量大管饱)

def get_response(html_url):    headers = {        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'    }    response = requests.get(url=html_url, headers=headers)    response.encoding = response.apparent_encoding    return responsedef get_Dm_url(bv_id):    link = f'https://www.ibilibili.com/video/{bv_id}/'    html_data = get_response(link).text    Dm_url = re.findall('<a href="(.*?)" rel="external nofollow"   class="btn btn-default" target="_blank">弹幕</a>', html_data)[0]    title = re.findall('<input type="text" value="(.*?)"', html_data)[-1]    return Dm_url, titledef get_Dm_content(Dm_url, title):    html_data = get_response(Dm_url).text    content_list = re.findall('<d p=".*?">(.*?)</d>', html_data)    if not os.path.exists('弹幕\\'):        os.mkdir('弹幕\\')    for content in content_list:        with open(f'弹幕\\{title}弹幕.txt', mode='a', encoding='utf-8') as f:            f.write(content)            f.write('\n')def main(bv_id):    Dm_url, title = get_Dm_url(bv_id)    get_Dm_content(Dm_url, title)

功能三

单页少量的数据很简单,但要想翻页,必须分析网站,找到规律

def get_response(html_url, params=None):    headers = {        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'    }    response = requests.get(url=html_url, params=params, headers=headers)    return responsedef get_oid(bv_id):    link = f'https://www.bilibili.com/video/{bv_id}/'    html_data = get_response(link).text    oid = re.findall('window.__INITIAL_STATE__={"aid":(\d+),', html_data)[0]    title = re.findall('"title":"(.*?)","pubdate"', html_data)[0].replace(' ', '')    return oid, titledef get_content(oid, page, title):    content_url = 'https://api.bilibili.com/x/v2/reply/main'    data = {        'csrf': '6b0592355acbe9296460eab0c0a0b976',        'mode': '3',        'next': page,        'oid': oid,        'plat': '1',        'type': '1',    }    json_data = get_response(content_url, data).json()    content = '\n'.join([i['content']['message'] for i in json_data['data']['replies']])    if not os.path.exists('评论\\'):        os.mkdir('评论\\')    with open(f'评论\\{title}评论.txt', mode='a', encoding='utf-8') as f:        f.write(content)def main(bv_id):    oid, title = get_oid(bv_id)    for page in range(1, 6):        try:            get_content(oid, page, title)        except:            pass

以上就是“怎么使用Python+tkinter实现网站下载工具”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: 怎么使用Python+tkinter实现网站下载工具

本文链接: https://www.lsjlt.com/news/350943.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Python+tkinter实现网站下载工具
    今天小编给大家分享一下怎么使用Python+tkinter实现网站下载工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发...
    99+
    2023-07-05
  • Python+tkinter实现网站下载工具
    目录前言开发环境本次项目案例步骤先展示下完成品的效果界面导入模块先创建个窗口功能按键主要功能代码编写功能一功能二功能三前言 最近很多同学想问我,怎么把几个代码的功能集合到一起? 很简...
    99+
    2023-03-07
    Python tkinter网站下载工具 Python tkinter下载工具 Python 网站下载
  • 使用Python下载工具you-get下
    You-Get是一个基于 Python 3 的下载工具。使用 You-Get 可以很轻松的下载到网络上的视频、图片及音乐。 使用you-get下载媒体文件 1.安装Python(步骤详情见另一篇文章) 2.安装you-get       ...
    99+
    2023-01-30
    下载工具 Python
  • 怎么用Java实现网站聚合工具
    这篇文章主要介绍“怎么用Java实现网站聚合工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Java实现网站聚合工具”文章能帮助大家解决问题。原理可以把互联网上的网站看做一张巨大的连通图,不...
    99+
    2023-06-29
  • Linux文件下载工具wget怎么使用
    这篇“Linux文件下载工具wget怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux文件下载工具wget怎么...
    99+
    2023-06-28
  • Linux系统wegt下载工具怎么使用
    Linux系统wegt下载工具怎么使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。wget是Linux系统中一个比不可少的的下载文件的工具,可以支持HTTP,HTTPS和...
    99+
    2023-06-28
  • python如何使用wget工具下载文件
    小编给大家分享一下python如何使用wget工具下载文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!wgetwget是Linux下的一个命令行下载工具,在Py...
    99+
    2023-06-17
  • 利用Java实现网站聚合工具
    目录原理实现代码页面下载解析返回值中的所有链接解析返回值中的title去除返回值中的标签分词获取分词结果的数量前十个遍历网站连通块调用测试互联网上有数以万亿计的网站,每个网站大都具有...
    99+
    2024-04-02
  • 怎么用vbs结合wget实现下载网站图片
    本篇内容介绍了“怎么用vbs结合wget实现下载网站图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vbs 函数过程:1. 调用wget:...
    99+
    2023-06-08
  • kmspico怎么使用?kmspico激活工具使用视频教程(附kmspico工具下载)
      很多朋友不知道kmspico怎么用,小编带来了kmspico激活工具使用视频教程,kmspico是一款激活win8和office2013的工具,小巧、简单,还不知道kmspico使      激活方式如下:   ...
    99+
    2023-06-04
    kmspico 激活工具 视频 视频教程 工具 附kmspico 激活
  • Java怎么实现的文件上传下载工具类
    小编给大家分享一下Java怎么实现的文件上传下载工具类,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文实例讲述了Java实现的文件上传下载工具类。分享给大家供大家参考,具体如下:这是一个在Eclipse环境下采用Java...
    99+
    2023-05-30
    java
  • 网站截图工具EyeWitness怎么用
    这篇文章主要介绍了网站截图工具EyeWitness怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。网站截图工具EyeWitness在网页分析和取证中,往往需要大批量的网站...
    99+
    2023-06-04
  • 网站过期域名查询工具怎么使用
    网站过期域名查询工具可以帮助您查询一个域名是否已经过期或即将过期。以下是使用该工具的步骤:1. 打开一个网站过期域名查询工具,例如W...
    99+
    2023-06-07
    过期域名查询 域名
  • Bing网站管理员工具怎么用
    这篇文章给大家分享的是有关Bing网站管理员工具怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、验证过程要使用Bing网站管理员工具,首先需要验证你拥有网站管理权限。有两个验证方法,按照Bing要求在网站...
    99+
    2023-06-13
  • 怎么用Python+Tkinter制作在线个性签名工具
    今天小编给大家分享一下怎么用Python+Tkinter制作在线个性签名工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。思...
    99+
    2023-06-29
  • Linux多线程下载工具myget怎么用
    这篇文章主要介绍了Linux多线程下载工具myget怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装很方便,wget http://myget.sourceforge...
    99+
    2023-06-13
  • python online工具怎么使用
    要使用Python的在线工具,可以按照以下步骤进行操作:1. 打开任意一个支持在线Python编程的网站,例如replit、Pyth...
    99+
    2023-09-20
    python
  • 怎么在python中利用tkinter制作一个倒计时工具
    怎么在python中利用tkinter制作一个倒计时工具?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简...
    99+
    2023-06-14
  • 如何使用Python自动下载网站所有文件
    这篇文章给大家分享的是有关如何使用Python自动下载网站所有文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。假如一个网站,里面有很多链接,有指向文件的,有指向新链接的,新的链接点击进去后,仍然是有指向文件的,...
    99+
    2023-06-14
  • Python怎么使用Asyncio实现检查网站状态
    这篇文章主要介绍了Python怎么使用Asyncio实现检查网站状态的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么使用Asyncio实现检查网站状态文章都会有所收获,下面我们一起来看看吧。我们可...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作