用 Scrapy 抓取慕课网全部免费课程:从分页采集到 MySQL 入库
这篇文章把一个抓取慕课网免费课程的 Scrapy 示例,整理成可直接复用的完整流程:从按课程类型翻页抓取,到进入详情页补齐难度、时长、评分,再通过接口拿到学习人数,最后异步写入 MySQL。代码事实、命令和表结构均保留,方便对照落地。
这篇文章把一个抓取慕课网免费课程的 Scrapy 示例,整理成可直接复用的完整流程:从按课程类型翻页抓取,到进入详情页补齐难度、时长、评分,再通过接口拿到学习人数,最后异步写入 MySQL。代码事实、命令和表结构均保留,方便对照落地。

Java 严格来说并没有像部分函数式语言那样“独立存在”的匿名函数,但从 Java 8 开始,开发者已经可以用 Lambda 表达式完成绝大多数匿名函数式写法。本文从匿名内部类到 Lambda 的演进讲起,再对比 JavaScript、Python 和 Scala,帮你判断 Java 的边界与适用场景。

Go 不只适合写独立程序,在 Windows 场景里也能编译成 DLL,供 C/C++、Python、C# 等程序调用。本文从环境准备、最小可用示例到导出规则和字符串处理案例,梳理 Go 构建 Windows 动态链接库时最容易踩到的类型、内存和调用约束。

Python 3.11 的 TaskGroup 不是单纯替代 asyncio.gather 的新写法,而是把并发任务的生命周期、异常传播和取消行为收紧到同一上下文里。对于批量 API 调用、自动化抓取这类场景,它能显著减少漏取消、异常失控和资源回收混乱的问题,但并发效果仍取决于连接池、限流和超时策略。

在 CentOS 上做 Python 并发,关键不在“能不能并发”,而在任务类型和工具是否匹配。本文把 `threading`、`multiprocessing`、`concurrent.futures` 与 `asyncio` 的适用场景、限制和示例代码拆开说明,帮助你快速判断该用线程、进程、线程池还是协程。 在 CentOS 上做 Python 并发,真正难的不是把任务“同时跑起来”,而是根据任务瓶颈选对模型。

在 CentOS 上调试 Python 并不缺工具,真正难的是按场景选对方法。本文从 `print()`、`logging`、`pdb`/`ipdb`、VS Code、PyCharm 到 `assert`、IceCream、GDB 逐项梳理,帮助你判断什么场合该用快速排查,什么场合该上交互式或底层调试。 在 CentOS 上排查 Python 问题时,很多人一开始就陷入工具选择焦虑:是继续加 `print()`,还是直接进 `pdb`、切到 VS Code,甚至上 GDB。其实不同工具解决的是不同层级的问题。

在 Debian 上写 Python 时,异常处理机制与其他操作系统并无差异,核心仍是 `try`、`except`、`else` 与 `finally`。本文结合一个除零示例,说明各代码块何时执行、该如何分工,以及为什么这套写法足以覆盖大多数常见报错场景。

在 Debian 上运行 Python 脚本并不复杂,关键是先确认 `python3` 可用,再按“创建脚本、赋权、执行”的顺序操作。本文把两种常见运行方式和各自适用场景拆开讲清,方便你快速上手。 在 Debian 里执行 Python 脚本并不难,但很多初学者第一次上手时,往往会卡在环境确认、文件保存,或者“为什么不能直接运行脚本”这类细节上。

在 Ubuntu 上写 Python 多线程,最常用的是标准库 `threading`。本文从线程创建、`start()` 与 `join()` 的基本用法讲起,再解释共享数据为什么要配合 `Lock`,最后说明 GIL 对性能的实际影响,帮助你判断多线程适合 I/O 场景还是该改用 `multiprocessing`。

并发和并行常被混着说,但它们解决的不是同一件事。本文用直观例子拆开两者差别,并顺着 Python 常见的多进程、多线程、多协程三种模型,梳理各自优势、限制与适用场景。 很多初学者一接触 Python 并发编程,就会先被两个词绕住:并发和并行听起来很像,但放到程序设计里,判断标准完全不同。

Python 异常处理的核心是用 `try` 捕获可能出错的代码,再用 `except`、`else`、`finally` 分别处理错误、成功分支和收尾动作。本文结合一个除零示例,拆开说明各个代码块的执行顺序和适用场景。 写 Python 脚本时,最怕的不是代码报错,而是程序一遇到异常就直接中断,既不知道问题在哪,也没有留下收尾动作。

在 CentOS 上做 Python 项目,目录怎么分、文件放哪儿,直接影响后续维护、测试和交接效率。本文按根目录、源码、文档、测试与脚本几个层次拆解一套常见结构,并补充虚拟环境、代码规范、CI/CD 与日志管理等实践,方便你判断哪些约定值得一开始就定下来。
