【GUI开发】用python爬YouTube博主信息,并开发成exe软件

一、背景介绍

你好,我是@马哥python说,一名10年程序猿。

最近我用python开发了一个GUI桌面软件,目的是爬取相关YouTube博主的各种信息,字段包括:

视频标题、视频链接、博主名称、博主链接、国家、telegram链接、whatsapp链接、twitter链接、facebook链接、instagram链接。

以近期某热门事件为例。

演示视频:

用python爬YouTube博主,并开发成GUI桌面软件

运行截图:

爬取数据截图:

实现思路:
通过按指定关键词搜索视频,通过视频进入博主的主页简介,爬取博主的各种联系信息。
并把源码封装成exe文件,方便没有python环境,或者不懂技术的人使用它。

二、代码讲解

2.1 爬虫

本爬虫是通过selenium模拟手工搜索的过程,所以需要提前安装好chrome浏览器和chromedriver驱动。
安装chrome浏览器和chromedriver驱动的过程,请自行解决,不再赘述。
把chromedriver放到exe文件的旁边(同级目录下)即可。
展示部分核心代码:
初始化csv文件:

def init(self):
    with open(f'{self.query}.csv', 'a', newline='', encoding='utf_8_sig') as f:
        writer = csv.writer(f)
        writer.writerow(['视频标题', '视频链接', '博主名称', '博主链接', '国家', 'telegram链接', 'whatsapp链接', 'twitter链接', 'facebook链接', 'instagram链接'])

爬博主信息:

# 先解析出所有链接
contact_url_els = self.browser.find_elements(By.XPATH, '//*[@id="link-list-container"]/a')
for j in contact_url_els:
    url = j.get_attribute('href')
    if "t.me" in url: # 电报链接
        de_url = unquote(url)
        de_url_dict = parse_qs(urlparse(de_url).query)
        url = de_url_dict.get("q")[0]
        telegram_url = url
    if "wa.link" in url or "api.whatsapp.com" in url: # whatsapp链接
        de_url = unquote(url)
        de_url_dict = parse_qs(urlparse(de_url).query)
        url = de_url_dict.get("q")[0]
        whatsapp_url = url
    if "twitter.com" in url: # twitter链接
        de_url = unquote(url)
        de_url_dict = parse_qs(urlparse(de_url).query)
        url = de_url_dict.get("q")[0]
        twitter_url = url
    if "facebook.com" in url: # facebook链接
        de_url = unquote(url)
        de_url_dict = parse_qs(urlparse(de_url).query)
        url = de_url_dict.get("q")[0]
        facebook_url = url
    if "instagram.com" in url: # instagram链接
        de_url = unquote(url)
        de_url_dict = parse_qs(urlparse(de_url).query)
        url = de_url_dict.get("q")[0]
        instagram_url = url

2.2 tkinter界面

界面部分代码:

# 创建主窗口
root = tk.Tk()
root.title('YouTube爬虫-定制化开发 | 马哥python说')
# 设置窗口大小
root.minsize(width=850, height=650)

show_list_Frame = tk.Frame(width=800, height=450)  # 创建<消息列表分区>
show_list_Frame.pack_propagate(0)
show_list_Frame.place(x=30, y=120, anchor='nw')  # 摆放位置

# 滚动条
scroll = tk.Scrollbar(show_list_Frame)
# 放到Y轴竖直方向
scroll.pack(side=tk.RIGHT, fill=tk.Y)

2.3 存日志

软件运行过程中,会在同级目录下生成logs文件夹,文件夹内会出现log文件,记录下软件在整个运行过程中的日志,方便长时间运行、无人值守,出现问题后的debug。
部分代码:

class Log_week():
    def get_logger(self):
        self.logger = logging.getLogger(__name__)
        # 日志格式
        formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
        # 日志级别
        self.logger.setLevel(logging.DEBUG)
        # 控制台日志
        sh = logging.StreamHandler()
        log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
        # info日志文件名
        info_file_name = time.strftime("%Y-%m-%d") + '.log'
        # 将其保存到特定目录,ap方法就是寻找项目根目录,该方法博主前期已经写好。
        case_dir = r'./logs/'
        info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
                                                when='MIDNIGHT',
                                                interval=1,
                                                backupCount=7,
                                                encoding='utf-8')
        self.logger.addHandler(sh)
        sh.setFormatter(log_formatter)
        self.logger.addHandler(info_handler)
        info_handler.setFormatter(log_formatter)
        return self.logger

三、软件演示视频

演示视频: 【爬虫演示】用python爬YouTube博主信息,并开发成GUI桌面软件!

四、说明

附完整源码:【GUI开发】用python爬YouTube博主信息,并开发成exe软件!


我是 @马哥python说,持续分享python源码干货中!


推荐阅读:【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

<think>好的,我现在要帮用户找到Visual Studio 2022的新手入门教程或资源。首先,我需要确定用户的具体需求是什么。用户提到是“新手入门”,所以可能需要从安装、界面介绍、基本功能使用开始。然后,用户可能想了解如何创建第一个项目,编写代码,调试等基础内容。 接下来,我需要回忆一下Visual Studio 2022有哪些官方资源适合新手。微软的官方文档通常是最权威的,所以应该优先推荐。比如官方入门指南,里面应该包括安装步骤、界面导览、创建项目、调试和发布等内容。根据引用[1]中的内容,用户可能需要配置Python环境,但用户的问题更广泛,可能涉及多种语言,但官方文档应该涵盖这些。 然后,微软学习平台提供的免费课程也是很好的资源,特别是互动式教程,比如“Visual Studio入门”,这对新手来说非常友好。引用[3]提到Visual Basic仍然广泛使用,虽然用户没具体说语言,但教程可能需要涵盖多种语言,如C#、VB、C++等,所以推荐多语言教程是合适的。 YouTube教程也是一个重要资源,很多用户喜欢视频学习。搜索“Visual Studio 2022 Beginner Tutorial”会出现很多优质内容,比如来自Channel 9的官方教程,或者知名技术博主的视频。引用[2]提到了COM类的添加步骤,虽然这是VS2008的内容,但说明视频教程的有效性,所以推荐视频是合理的。 书籍方面,对于喜欢系统学习的用户,推荐《Visual Studio 2022入门经典》这样的书籍,可以全面覆盖IDE的使用方法。引用[4]提到包含路径的设置,这可能涉及到项目配置,书籍通常会详细讲解这些步骤,所以书籍推荐也是必要的。 社区支持方面,Stack Overflow和微软技术社区是解决问题的好地方。引用[1]中提到了VS Code配置虚拟环境,虽然这里讲的是VS,但社区的作用类似,用户遇到问题可以在这些平台提问。 最后,实践项目是关键,用户需要动手练习。建议从控制台应用开始,逐渐过渡到GUI或Web项目。引用[3]提到VB适合开发小型桌面应用,所以实践项目可能包括这些类型,帮助用户巩固知识。 现在需要检查是否有遗漏点。比如是否覆盖了安装、配置、基础操作、调试、扩展功能等。另外,用户可能对扩展插件感兴趣,比如Git集、代码分析工具,这些能提升开发效率,应该包含在推荐资源中。 总结下来,回答的结构应该是分点列出不同类型的资源,包括官方文档、视频教程、书籍、社区和实践建议,每个部分简要说明内容和获取方式,自然地加入引用标记。同时,生的相关问题要围绕VS 2022的深入学习、调试技巧、插件推荐等,帮助用户进一步探索。</think>以下是针对Visual Studio 2022的新手入门教程和资源推荐: --- ### 一、官方入门指南 1. **微软官方文档** - 包含安装指南、界面导览和基础功能演示,支持C#/VB/C++/Python等语言开发环境配置。 - 重点章节:创建第一个控制台应用、调试技巧、Git版本控制集[^1][^3]。 - 链接:[Visual Studio 2022文档](https://learn.microsoft.com/visualstudio/) 2. **微软学习平台免费课程** - 提供互动式教程"Get Started with Visual Studio",涵盖项目创建、代码编辑和发布流程[^3]。 --- ### 二、视频教程 1. **YouTube精选教程** - 搜索关键词`Visual Studio 2022 Beginner Tutorial`,推荐Channel 9的官方系列教程,包含实时编码演示。 - 示例内容:如何配置Python解释器(参考虚拟环境配置方法)、ASP.NET Core项目搭建。 2. **B站中文教程** - UP主"技术宅小明"的《Visual Studio 2022零基础入门》系列,含汉化界面解读和调试技巧。 --- ### 三、书籍推荐 - **《Visual Studio 2022入门经典》** 系统讲解IDE功能,包括: - 扩展插件安装(如AI代码助手IntelliCode) - 多项目管理技巧 - 性能分析工具使用(参考调试流程) --- ### 四、社区支持 1. **Stack Overflow** - 标签`visual-studio-2022`下有超过10万条讨论,常见问题如环境配置错误[^1]、扩展冲突等。 2. **微软技术社区** - 提供官方工程师答疑,适合解决.NET项目依赖项配置等复杂问题。 --- ### 五、实践建议 1. **从模板项目入手** - 使用`File > New Project`中的"Console App"模板,体验完整编码-编译-调试流程。 - 尝试添加NuGet包(如Newtonsoft.Json),学习依赖管理。 2. **探索扩展功能** - 安装"Python Tools for Visual Studio"(参考Python环境配置) - 尝试"Live Share"实时协作编程 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马哥python说

打赏多少不重要,表达认可最重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值