用 Trae IDE 打造一个桌面小爬虫:从 PyQt5 开始,轻松采集掘金首页内容

article/2025/8/21 1:31:31

很多程序员都有这样的经历:刷掘金、看文章、找灵感、追热点。但你有没有想过,有一天让“爬虫”代替你去浏览这些内容?自动提取标题、作者、点赞数、评论数,一键生成你的专属“技术热点日报”。

今天我们就用 Trae IDE + PyQt5 来完成这样一个实用而不复杂的小项目:一个图形化的“掘金首页信息爬取器”。它不仅能自动抓取掘金首页的文章信息,还能在桌面界面中整洁地展示数据,为你节省大量筛选时间。

而 Trae IDE 的低门槛、多插件、轻后端特性,会让这件事变得非常简单。

项目目标:做一款你看得见的“网页爬虫”

我们要做的不是命令行下冷冰冰的“爬虫脚本”,而是一个有 GUI 界面的小工具,打开软件后,点击一个按钮,它就能帮你把掘金首页的文章都“搬”过来,像新闻列表一样列出来。

具体来说,我们想要实现这些功能:

  • 一键采集掘金首页推荐文章列表

  • 抽取标题、作者、点赞数、评论数、发布时间

  • 显示在桌面窗口中,可滚动查看

  • 可以刷新、导出为本地 Markdown 或 JSON

  • 可选择“热门排序”或“最新发布”排序方式(高级功能)

同时我们不追求复杂的后台部署,也不想搭配浏览器环境 —— 纯 Python、纯桌面化、纯原生体验。使用 Trae IDE 的话,这一切将变得非常自然。

技术栈分析:PyQt5 + requests + Trae 的完美组合

为什么用 PyQt5?

PyQt5 是一个非常成熟的 GUI 框架,能够做出现代感强、用户体验不错的桌面应用。它既可以做简单的按钮窗口,也能做出复杂的数据展示表格。

在这个项目中,我们用 PyQt5 来实现以下界面组件:

  • 输入框(可设置采集的页数或筛选条件)

  • 按钮(“开始采集”、“刷新”、“导出”等)

  • 表格视图(展示爬取下来的文章数据)

  • 滚动区域(查看更多内容时保持界面流畅)

相比 Tkinter,PyQt5 的可扩展性和美观度更好;而对比 Electron,它又更轻量级,更适合做这种“数据爬取 + 信息展示”的小工具。

网络爬取部分

掘金首页的数据,大多是动态加载的,页面结构基于 Vue 渲染,直接用 requests 抓 HTML 是抓不到完整数据的。不过,掘金作为一个开放社区,推荐内容其实来自一个公开的接口(比如 https://api.juejin.cn/content_api/v1/article/recommend_all_feed 之类),我们可以直接模拟 POST 请求获取数据 JSON。

在 Trae IDE 里,借助原生 Python 脚本支持,我们可以轻松使用 requests 库来模拟网络请求、处理 JSON 响应,并提取出文章内容。

话不多说,上教程。

首先,我们先创建一个“网络爬虫”的只智能体,并简要的描述其角色,功能等等;

添加图片注释,不超过 140 字(可选)

然后再Trae的对话框中@我们创建的智能体,并输入需求,然后点击发送即可。

添加图片注释,不超过 140 字(可选)

接下来,Trae会根据需求,进行思考和任务自动实现。

添加图片注释,不超过 140 字(可选)

2-3分钟后,我们就可以难道结果;运行程序,看一下效果。

添加图片注释,不超过 140 字(可选)

功能代码块:

 
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrlclass JuejinCrawler(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('掘金数据抓取')self.setGeometry(300, 300, 800, 600)layout = QVBoxLayout()self.browser = QWebEngineView()self.btn = QPushButton('开始抓取', self)self.btn.clicked.connect(self.start_crawl)layout.addWidget(self.browser)layout.addWidget(self.btn)self.setLayout(layout)def start_crawl(self):self.browser.load(QUrl('https://juejin.cn/'))self.browser.loadFinished.connect(self.handle_load_finished)def handle_load_finished(self):self.browser.page().runJavaScript("""Array.from(document.querySelectorAll('.entry-list li')).map(item => ({title: item.querySelector('.title').innerText,author: item.querySelector('.username').innerText,time: item.querySelector('.time')?.innerText || '',link: item.querySelector('a')?.href || ''
}));""",self.save_results)def save_results(self, results):import jsonwith open('juejin_data.json', 'w', encoding='utf-8') as f:json.dump(results, f, ensure_ascii=False, indent=2)print('抓取完成,结果已保存到juejin_data.txt')if __name__ == '__main__':app = QApplication(sys.argv)ex = JuejinCrawler()ex.show()sys.exit(app.exec_())

我们常说“编程改变世界”,但其实,哪怕只是写一个能帮自己高效获取技术文章的小工具,也是一种用代码改变生活的方式。

在这个项目中,我们用 PyQt5 打造出一个小而美的爬虫工具,借助 Trae IDE 的模块化、可视化支持,让整个开发过程变得顺畅而愉快。


http://www.hkcw.cn/article/TWQHmNeHai.shtml

相关文章

王楚钦谈18岁时妈妈给自己写的信!

王楚钦谈18岁时妈妈给自己写的信。“大头夺冠,我没哭;莎莎夺冠,我也没哭。可是看到大头妈妈的这句话,我真的忍不住了,忍不住哭了出来。”这看似简单的话语,却饱含着网友内心深处被触动的情感。在过往的采访中,王楚钦多次提及妈妈写给他18岁生日的那封信。那封信里,字里…

CTA-861-G-2017中文pdf版

CTA-861-G标准(2016年11月发布)规范未压缩高速数字接口的DTV配置,涵盖视频格式、色彩编码、辅助信息传输等,适用于DVI、HDMI等接口,还涉及EDID数据结构及HDR元数据等内容。

女子向丈夫要钱遭拒后轻生系谣言 不实信息勿信传

近日,网络上流传一则消息,称山东一名女子因向丈夫索要5元钱买煎饼果子当早餐被拒后选择喝药轻生。经过省内各地和相关部门核实,该信息并不属实。提醒广大网友保持理性和冷静,不轻易相信和传播未经证实的消息,共同维护健康有序的网络环境。责任编辑:zx0176

PID在工业生产中的应用

1.什么是PID PID是“比例-积分- 微分 ”(Proportional-Integral-Derivative)的缩写,是一种常用于控制系统的调节算法。PID控制器 通过综合考虑当前偏差、偏 及偏差的变化速率,来调整系统的输出,以使系统的响应更加稳定…

RFID综合项目实训 | 基于C#的一卡通管理系统

目录 基于C#的一卡通管理系统 【实验目的】 【实验设备】 【实验内容】 【实验步骤】 实验准备 第一部分 界面布局设计 ​第二部分 添加串口通讯函数及高频标签操作功能函数(部分代码) 第五部分 实验运行效果 基于C#的一卡通管理系统 【实验目的】 熟悉 …

Java基于SpringBoot的医院挂号系统,附源码+文档说明

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

2025年- H56-Lc164--200.岛屿数量(图论,深搜)--Java版

1.题目描述 2.思路 (1)主函数,存储图结构 (2)主函数,visit数组表示已访问过的元素 (3)辅助函数,用递归(深搜),遍历以已访问过的元素&…

重温经典算法——插入排序

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 基本原理 插入排序是一种基于元素逐步插入的简单排序算法,其核心思想是将待排序序列分为已排序和未排序两部分,每次从未排序部分取出第一个元素&…

数字孪生数据监控如何提升汽车零部件工厂产品质量

一、汽车零部件工厂的质量挑战 汽车零部件作为汽车制造的基础,其质量直接关系到整车的性能、可靠性和安全性。在传统的汽车零部件生产过程中,质量问题往往难以在早期阶段被发现和解决,导致生产效率低下、生产成本上升,甚至影响到…

气象局谈端午期间天气情况 南北温差大降水分布不均

气象局谈端午期间天气情况 南北温差大降水分布不均!5月29日,中国气象局举行新闻发布会。国家气候中心副主任贾小龙在会上发布了端午天气预报和6月气候趋势预测及气象服务提示。关于气温,预计端午假日期间(5月31日至6月2日),河北南部、山东北部、河南西部、广西、新疆盆地…

新版《汽车侧面碰撞的乘员保护》国标发布

新版《汽车侧面碰撞的乘员保护》国标发布,“新”在哪里?记者今天(30日)从市场监管总局了解到,市场监管总局、国家标准委发布了新版《汽车侧面碰撞的乘员保护》国家标准,这将全面提高汽车对于驾乘人员的保护。现行的《汽车侧面碰撞的乘员保护》国家标准发布于2006年,目前…

海上石油钻井平台人员安全管控解决方案

一、行业挑战与需求分析 海上钻井平台面临复杂环境风险(如易燃易爆、金属干扰、极端气象)和人员管理难题(如定位模糊、应急响应延迟)。传统RFID或蓝牙定位技术存在精度不足(1-5米)、抗干扰能力差等问题&am…

央视曝光当天岳阳书记市长带队督导 严打违规垂钓

5月29日,中央广播电视总台报道了洞庭湖禁钓区违规钓鱼乱象后,湖南岳阳市委、市政府高度重视。省委常委、市委书记谢卫江和市长李挚迅速部署整改工作,并分别带队前往东洞庭湖和南洞庭湖督导执法,要求各级各部门提高思想认识,举一反三,持续开展十年禁渔执法监管水生生物特别…

AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁​

近年来,人工智能正在改变法律行业的游戏规则。从最初的“工具属性”——帮律师干些重复的杂活儿,到如今逐渐变身为“认知引擎”——能够理解法律逻辑、分析案例,法律AI产品正在迎来一场华丽的转身。这篇文章将带你一探究竟,看看这…

回文数-leetCode-009

回文数是指正序(从左向右)和倒序(从右向左)读都相同的整数。例如,121 是回文数,而 -121 和 10 不是。本文将介绍两种解法:字符串转换法和反转一半数字法,并分析它们的复杂度。 解法一…

广东东莞发生小车坠桥事故,5人死亡 事故引发广泛关注

广东东莞发生小车坠桥事故,5人死亡 事故引发广泛关注!近日,广东东莞环莞快速路虎门段发生了一起交通事故,引起了广泛关注。5月29日晚,虎门镇“519”事故工作专班发布了情况通报。责任编辑:0882

高校校长被曝论文涉嫌抄袭 校长职务被免

近日,有网民向媒体反映“烟台科技学院校长硕士论文涉嫌严重抄袭”,引发社会广泛关注。经核查,情况属实。学校董事会高度重视,为严肃学术纪律,维护高校声誉和教育公信力,决定免去马红坤同志烟台科技学院校长职务。感谢社会各界对高等教育学术规范的关注。烟台科技学院将以…

多模态大语言模型arxiv论文略读(九十八)

Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文标题:Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文作者:Ziyuan Huang, Kaixiang Ji, Biao Gong, Zhiwu Qing, Qinglong Zhang, Kecheng Zhe…

Triton推理服务器部署YOLOv8(onnxruntime后端和TensorRT后端)

文章目录 一、Trition推理服务器基础知识1)推理服务器设计概述2)Trition推理服务器quickstart(1)创建模型仓库(Create a model Repository)(2)启动Triton (launching triton)并验证是否正常运行(3)发送推理请求(send a inference request)3)Trition推理服务器架…

端午连休3天高速收费 假期出行需注意

根据国务院办公厅《关于2025年部分节假日安排的通知》,端午节放假时间为5月31日(周六)至6月2日,共3天。此次端午节放假不调休。责任编辑:zx0176