开始试用
返回

ChatGPT 网页爬取:轻松构建 Python 爬虫的方法

用你偏好的 AI 总结本文
试用我们的高级代理

无限量测试我们的优质代理,畅享卓越质量。

  • 移动代理和住宅代理
  • ZIP 级别定位
  • 静态 IP 和轮换 IP
  • 内置质量过滤器
立即试用

我想看看 ChatGPT 在 网络爬虫。我决定用一个简单的任务来试一试:拿一个公开的产品页面,提取标题、价格、评分和库存情况,并将结果保存到 CSV 中。

总而言之,ChatGPT 能帮上很大的忙,但它本身并不是一套完整的抓取方案。

如果 ChatGPT 具备网络访问能力,它可以小规模地从页面中提取或总结信息。但如果你想要可重复的网页抓取、结构化数据、多个 URL、JavaScript 渲染、重试机制以及更少的拦截,那么你仍然需要代码和基础设施,其中包括 代理.

对我来说,最终好用的配置是:

  • 用 ChatGPT 编写和修复爬虫
  • 用于运行抓取工具的 Python
  • 当页面使用 JavaScript 时使用 Playwright
  • 当请求开始被拦截或变得对地区敏感时使用代理

ChatGPT 能抓取网站吗?

可以,但仅限于有限的方式。 ChatGPT 在具备联网功能时可以处理网络信息。如果你需要快速查询、简短摘要或少量手动核对,这很有用。但这与可扩展的网页抓取并不是一回事。

如果你需要跨多个页面抓取产品价格、评论、商品列表、搜索结果或市场数据,你就需要一个用以下语言编写的抓取工具: Python 语言、JavaScript 或另一种编程语言。

ChatGPT 最适合用作帮助你构建爬虫的助手。

它可以:

  • 编写第一版代码
  • 说明应该使用哪些选择器
  • 修复 Python 错误
  • 为 Playwright 重写抓取器
  • 添加 CSV 或 JSON 导出功能
  • 添加代理
  • 添加重试和封锁检测

OpenAI 的网页搜索工具旨在检索带引用的最新信息,而不是运行结构化的抓取流程。

如何用 ChatGPT 进行抓取

第 1 步:选择要抓取的页面

选择一个简单的页面来构建和测试你的抓取器。测试时,我使用的是:

https://books.toscrape.com/

Books to Scrape 是一个用于练习网页抓取的沙盒网站。

Books to Scrape - ChatGPT 网页抓取 | NodeMaven

我让任务保持简单。我希望最终得到一个 CSV 文件,其中包含:

  • 书名
  • 价格
  • 可用性
  • 产品链接

第 2 步:复制产品选择器

在向 ChatGPT 索要代码之前,我先在 Chrome 中打开了 Books to Scrape,并检查了其中一张图书卡片。

我右键点击一个书名,点击“检查”,查看了标题、价格、库存情况和产品链接周围的 HTML。然后我复制了选择器,这样 ChatGPT 就不必猜测页面结构了。

这个过程很简单:

  • 右键点击书名,然后点击 Inspect
  • 右键点击高亮的 HTML 元素
  • 选择“复制”→“复制选择器”
  • 对价格和库存情况重复相同操作
  • 对于商品链接,请检查书名或图片链接

第 3 步:提示 ChatGPT 构建抓取程序

然后我把页面 URL、我想要的字段以及我复制的选择器交给了 ChatGPT。

提示词大致是这样的:

我想从这个演示网站抓取公开的产品数据:
https://books.toscrape.com/

我需要一个包含以下内容的 CSV 文件:
- 书名
- 价格
- 可用性
- 产品链接

以下是我从 Chrome DevTools 复制的选择器:
图书卡片选择器:article.product_pod
书名选择器:h3 a
价格选择器:.price_color
可用性选择器:.availability
商品链接选择器:h3 a

编写一个 Python 抓取器,从第一页提取所有书籍,并将结果保存到 books_to_scrape_products.csv。

Use requests and BeautifulSoup.
为缺失的标题、价格、库存或链接添加简单的错误处理。
将相对产品链接转换为完整的 URL。

你需要一个详细的提示词,而不仅仅是“抓取这个网站”。ChatGPT 知道了页面、字段、输出格式以及我想要的确切结果。

第 4 步:从 BeautifulSoup 开始

Books to Scrape 是一个静态演示网站,所以第一个版本我并不需要 Playwright。

这让整个设置变得更简单。

抓取流程如下:

  • 打开 Books to Scrape 首页
  • 找到每一个产品卡片
  • 提取标题、价格、库存情况和链接
  • 把相对链接转换成完整的 URL
  • 把所有内容保存到一个 CSV 文件中

ChatGPT 首先生成了一个 BeautifulSoup 版本,对这个页面来说是合理的。

如果我抓取的页面是用 JavaScript 加载商品的,我会让 ChatGPT 把脚本改成 Playwright。但在这次测试中,BeautifulSoup 已经够用了。

第 5 步:搭建 Python 项目

在 ChatGPT 生成抓取工具后,我需要在本地运行它。

首先,我创建了一个新文件夹:

然后我创建了一个虚拟环境。

在 macOS 上,我使用的是:

然后我激活了它:

在 Windows 上,激活命令为:

然后我安装了这些包:

然后我快速检查了 Python 是否能够导入它们:

如果 pip install 因 NameResolutionError 而失败,我会先检查网络连接。就我的情况而言,命令本身是对的,但如果终端因为 DNS、防火墙、VPN 或网络限制而无法访问 PyPI,软件包安装就可能失败。

如果抓取脚本之后出现 ModuleNotFoundError: No module named ‘requests’,这通常意味着安装没有完成,或者虚拟环境未激活。

第 6 步:创建抓取程序文件

配置准备好之后,我创建了 Python 文件:

然后我在文本编辑器中打开了它。

在 macOS 上,这样可能有效:

如果该命令不起作用,我会使用任意代码编辑器,或者直接从文件夹中打开文件。终端的备用方案是:

我把 ChatGPT 生成的代码粘贴到文件里并保存。

脚本大致是这样的:

第 7 步:运行抓取器并检查 CSV

然后我运行了脚本:

它创建了一个名为以下名称的 CSV 文件:

books_to_scrape_products.csv

要在 macOS 上打开并检查该 CSV,请运行:

输出结果包含了我想要的字段。

ChatGPT 网页抓取 | NodeMaven

ChatGPT 帮我构建了一个抓取程序,它可以打开页面、提取结构化数据,并将其保存为可用的 CSV。

第 8 步:让 ChatGPT 抓取多个页面

第一个版本只抓取了第一页。

Books to Scrape 共有 50 页,因此下一步显而易见:让 ChatGPT 添加分页功能。

我使用了这个提示词:

这个抓取脚本对第一页有效。

请更新它,使其抓取 Books to Scrape 上的所有页面。

该网站有分页。
请一直跟随“next”链接,直到没有更多页面为止。

保持相同的 CSV 列:
- 书名
- 价格
- 库存情况
- 商品链接

ChatGPT 更新了脚本,让它可以跟进下一页的链接。

第 9 步:添加基础的调试和重试逻辑

抓取器可以运行,但并不完美。它抓取了前五页,然后第 6 页超时了。

终端显示:

正在抓取第 6 页:https://books.toscrape.com/catalogue/page-6.html
页面获取失败
连接超时
第 6 页失败,已跳过
已将 100 本书保存至 books_to_scrape_products.csv

然后我让 ChatGPT 改进这个脚本:

抓取工具可以运行,但第 6 页超时了。

请更新脚本,使其:
- 对失败的页面最多重试 3 次
- 每次重试之间等待 3 秒
- 将请求超时时间增加到 30 秒
- 如果某个页面在重试后仍然失败,则继续抓取
- 最后将所有成功抓取的产品保存到 CSV 文件中

这类修复在真实的抓取工作中很重要。即使是简单的网站也可能超时。在大型电商网站上,重试、超时、日志以及干净的代理会话都不是可有可无的。

第 10 步:为防护更严的网站添加代理

Books to Scrape 证明了这个抓取脚本可以正常工作。但对于真实的电商网站、市场平台、搜索结果或评论平台,我不会使用同样简单的配置。

这些网站通常有反机器人系统、速率限制、区域内容和更严格的 IP 检查。如果每个请求都来自同一个本地 IP、办公室 Wi-Fi、云服务器或免费 VPN,抓取程序就可能开始被拦截、被要求验证或返回不完整的页面。

这正是我建议添加代理的地方。

我会在抓取脚本通过小规模测试后再添加它们。首先,我想确认代码是否正确。然后我再添加代理,让访问层更加稳定。

在抓取过程中,代理有助于:

  • 在测试时保持稳定的会话
  • 从特定国家、城市或 ZIP 代码进行抓取
  • 按 IP 会话区分不同的抓取任务
  • 减少对被过度使用的 VPN 或数据中心 IP 的依赖
  • 查询区域价格、库存情况或搜索结果
  • 诊断故障是由代码问题还是访问问题引起的

在 NodeMaven 中,我会像这样创建一个代理配置:

  • 代理类型: 住宅代理
  • 位置:根据目标市场
  • 会话类型:轮换
  • 协议:HTTP
  • 主机:gate.nodemaven.com
  • 端口: 8080
  • 来自仪表板的用户名和密码

然后在终端中设置代理凭据,而不是直接写在 Python 文件里。

在 macOS 或 Linux 上:

在 Windows PowerShell 上:

然后用以下提示词让 ChatGPT 更新抓取工具:

该抓取脚本已能在测试网站上运行。

现在添加带身份验证的 NodeMaven 代理支持。

使用环境变量保存凭据:
- NODEMAVEN_PROXY_USERNAME
- NODEMAVEN_PROXY_PASSWORD

代理服务器:
http://gate.nodemaven.com:8080

另外添加:
- 超时处理
- 失败 URL 日志记录
- 重试逻辑
- 拦截页面检测
- 缺少代理凭据时给出清晰的错误提示

对于一个 requests 爬虫来说,代理配置大致是这样的:

这样可以让凭据不出现在 Python 文件中。它还让抓取脚本更安全,便于分享、截图或提交到代码仓库。

这正是 ChatGPT 自身无法解决的部分。它可以编写抓取程序,但无法让低质量的 IP 变得更受信任,无法添加 IP 轮换,也无法在受保护的网站上保持会话稳定。干净的住宅代理、粘性会话和位置定向能为抓取程序提供更好的运行环境。

为什么 NodeMaven 适合 ChatGPT 网页抓取工作流

NodeMaven 在这里很有用,因为它能解决 ChatGPT 无法解决的部分:访问质量。

NodeMaven 可以帮助你实现:

  • 干净的轮换住宅 IP,实现更自然的访问
  • 用于较长抓取运行的粘性会话
  • 国家/地区、城市、ISP 和 ZIP 定向
  • 支持 SOCKS5 和 HTTP
  • 以质量为核心的筛选模式
  • 住宅套餐包含移动代理
  • 质量保证 以及在相关情况下的返现

干净的 IP 和稳定的会话让你更容易把代码问题和访问问题区分开来。如果一个爬虫在干净的环境下失败,我就知道该去检查选择器、JavaScript 或页面结构,而不是盲目地猜测。

ChatGPT 抓取工具 vs 抓取 API

测试之后,我会这样划分这些工具:

设置最适合限制
具备网络访问的 ChatGPT少量的手动查询无法扩展的结构化抓取
ChatGPT + BeautifulSoup像 Books to Scrape 这样的静态页面在大量使用 JavaScript 的网站上会失效
ChatGPT + Playwright动态页面速度更慢,资源占用更多
ChatGPT + NodeMaven 代理具备更好访问控制的真实抓取工作流程代理的额外成本
数据采集 API托管式渲染、重试和基础设施对自定义逻辑的控制较少
MCP 风格的工具研究与原型开发并非总是可用于生产环境

MCP 也值得关注。与其让 ChatGPT 编写代码再单独运行,不如用 MCP 将 AI 助手连接到外部工具。OpenAI 提供了 MCP 及连接器的文档,用于将模型连接到外部系统。

Final Takeaway

ChatGPT 能帮助进行网页抓取,但它并不是一套完整的抓取技术栈。

它可以帮你快速构建一个可用的抓取器,但对于带有反机器人系统的网站,例如 Amazon,你仍然需要干净的基础设施、稳定的会话、日志记录、重试和数据校验。

我得到的实用结论很简单:

  • 使用 ChatGPT 构建并调试抓取程序。
  • 使用 Python 或 Playwright 来运行它。
  • 当工作流程需要 IP 轮换、稳定访问、位置控制和更干净的 IP 时,请使用 NodeMaven 代理。
让 ChatGPT 网页抓取更加可靠

使用 NodeMaven 住宅、移动和 ISP 代理,享受粘性会话、地理定位、SOCKS5/HTTP 支持以及经过预筛选的纯净 IP。仅需 $3.50 即可获得 750MB 起步流量。

 
开始试用

常见问题

是的,当网页功能可用时,ChatGPT 可以访问一些网络信息,但它在结构化抓取方面能力有限。对于可扩展的抓取,请使用 Python、JavaScript、Playwright、Scrapy 或抓取 API。

把目标页面、你想要的字段、首选语言和输出格式提供给 ChatGPT。然后测试脚本,把错误粘贴回 ChatGPT,改进选择器,并在需要时添加分页、重试或代理。

可以。ChatGPT 很适合用来编写 BeautifulSoup、Scrapy、Selenium 和 Playwright 脚本,尤其在初稿撰写、选择器编写和调试方面很有帮助。

对于有机器人防护的网站上的抓取工作流程,是的,代理往往会变得很重要。它们能解决 IP 轮换、位置控制、会话稳定,或者减少访问问题。

住宅代理通常是网页抓取最安全的默认选择。ISP 代理适用于快速、稳定的静态会话。当需要类似移动设备的 IP 行为时,移动代理会很有用。

不需要。代理无法保证零 CAPTCHA。干净的 IP 和稳定的会话有助于减少不必要的验证,但目标网站、请求模式、浏览器设置和抓取行为仍然很重要。

当你想要自定义代码和掌控力时,ChatGPT 更合适。当你想要托管式渲染、重试和基础设施时,抓取 API 更合适。对于严肃的工作流程,许多团队会两者并用。

您可能还喜欢 这些文章

本网站使用 Cookie 文件 来提升您的使用体验。继续访问即表示您同意我们使用 Cookie。