Python 被高估了吗?真正的 Web Scraping 最佳语言

发布: (2025年12月30日 GMT+8 21:49)
3 min read
原文: Dev.to

Source: Dev.to

Introduction

“有没有哪个库在我部署时不会烂掉?”

在 macOS 上配置 undetected‑chromedriver 过去对我来说简直是痛苦。很多客户并不真正了解这些是怎么工作的,而且他们想要一个 GUI 来交互。当然,Python 有用于构建 GUI 的库……但大多数看起来像是直接从 2000 年代初期搬来的。

Python’s Limitations

  • GUI 库显得过时。
  • 部署可能很繁琐。
  • 对于大规模爬虫流水线,数据清洗能力并不理想。

Switching to JavaScript

我开始寻找替代方案,最终转向 JavaScript

  • 更好的爬虫库,例如 Puppeteer
  • 部署体验更顺畅。
  • 已经是 Web 应用的主要语言,所有东西更自然地配合在一起。

Discovering Go

就在这时我发现了 Golang。它的社区虽小但在增长,在以下方面绝对占优势:

  • 速度、可靠性和并发性。
  • 简单的部署:生成一个二进制文件即可。

Go 在网络编程方面表现出色,并通过 chromedprod 等库提供了对网页自动化的坚实支持。在扩展性方面,Go 超越了 Python,尤其是在 CPU 密集型和高并发工作负载下。其他优势包括:

  • 可预测的内存占用。
  • 更快的启动时间。
  • 能够处理成千上万的并发连接而不会耗尽资源。

Comparing the Ecosystems

你可以争辩说 Python 拥有更多的库,TypeScript 让 JavaScript 更可靠。我同意——每种语言都有其优势。然而,Go 所提供的原始性能、部署简易性以及一致性是很难匹配的。

  • Go 可以构建基于 IPC 的通信层,并且能够轻松与其他语言集成,用于前端或专用工具。
  • Go 的生态相对较小,但正在快速改进。

Conclusion

如果 Go 继续获得强有力的支持并被更广泛采用,它完全有可能在网页爬取领域挑战 Python 的主导地位——尤其是在大规模、生产级系统中,性能、稳定性和部署是最关键的因素。

Back to Blog

相关文章

阅读更多 »

MongoDB 等价于 FOR UPDATE SKIP LOCKED

在 MongoDB 中的 SELECT … FOR UPDATE SKIP LOCKED 风格的并行处理 “SELECT … FOR UPDATE SKIP LOCKED” 是一种供应商特定的 SQL 功能,适用于 PostgreSQL、Oracle、MySQL……