⚠️【常温警告 / Ambient Temperature Warning】
在开始之前,请务必确认你的运行环境温度!
本教程涉及高负载数据抓取与解析,如果你的设备(尤其是笔记本电脑或紧凑型主机)处于 高温环境(超过 30°C),或者散热口被堵塞, 请立即停止操作并改善散热。
OpenClaw 在满载运行时 CPU 占用率极高,若叠加环境高温,极易导致 硬件降频、数据丢包,甚至主板电容过热损坏。
这不是开玩笑: 我见过太多人因为一边开着暖气/空调出风口对着吹,一边跑全量爬虫,最后把显卡烧了。
请确保:室温适宜(20-25°C),通风良好,风扇狂转时不要用手堵住出风口。
确认环境安全后,我们再继续。否则,请现在就去开窗或拿个风扇对着吹。
- 第一章:准备工作——别急着动手,先看看你有啥
- 1.1 检查你的电脑是不是“砖头”
- 1.2 下载 Python(真的,很多人卡在这一步)
- 1.3 下载 VS Code(写代码的地方)
- 第二章:安装 OpenClaw——像搭积木一样简单
- 2.1 打开那个黑色的窗口(终端)
- 2.2 输入那行神秘的咒语
- 2.3 验证安装成功(没看到这句话就是失败了)
- 第三章:第一次运行——鼠标往哪移,眼睛看哪里
- 3.1 新建文件夹(别建在 C 盘根目录!)
- 3.2 创建第一个文件
main.py - 3.3 复制粘贴全部代码(一个字都别改)
- 3.4 点击那个绿色的三角形(见证奇迹的时刻)
- 第四章:代码逐行拆解——把傻子都能听懂的逻辑
- 4.1 为什么要引入这些库?
- 4.2 那个
config到底是啥? - 4.3 数据是怎么被“抓”下来的?
- 第五章:进阶操作——配置你的专属爬虫
- 5.1 修改目标网址
- 5.2 设置保存路径
- 5.3 调整抓取速度(别把人家服务器搞崩了)
- 第六章:常见问题急救室——报错了我该哭还是该笑?
- 6.1 ‘command not found’ 是什么意思?
- 6.2 红色的一大堆英文报错怎么办?
- 6.3 抓不到数据,只抓到一堆空壳?
- 6.4 电脑突然卡死不动了?
- 第七章:终极完整代码库——直接抄作业区
听着,我知道你很急,你想马上看到数据像瀑布一样流下来。但如果你连工具都没准备好,你就是在对着空气打拳。我们一步一步来,哪怕你是第一次摸电脑,也能跟上。
OpenClaw 不是那种轻量级的小玩具,它需要一点算力。
- 动作:按下键盘上的
Ctrl+Shift+Esc三个键(同时按,别一个一个按)。 - 观察:屏幕上会弹出一个叫“任务管理器”的窗口。
- 判断:看中间的“CPU”和“内存”两列。如果你的电脑什么都没干,CPU 就已经飙到 90% 以上,或者内存只剩几百 MB,请立刻停止。你的电脑带不动,强行跑只会死机。
- 正常状态:CPU 占用率在 10% 以下,内存还有好几个 GB 的空闲。如果是这样,恭喜你,可以继续。
OpenClaw 是用 Python 写的,没有 Python,它就是废铁。
- 动作 1:打开你的浏览器(Chrome, Edge, 随便哪个)。
- 动作 2:在地址栏输入
python.org,然后按回车键Enter。 - 动作 3:看到首页上方有个黄色的按钮,写着
Downloads Python 3.x.x(x 是数字,比如 3.11.5)。 - 动作 4:鼠标移动到这个黄色按钮上,左键单击一下。
- 动作 5:等待下载完成。下载好的文件通常在屏幕左下角(Chrome)或右下角(Edge),文件名大概是
python-3.11.5-amd64.exe之类的。 - 动作 6(最关键的一步,做错重来):
- 双击刚才下载的文件。
- 弹出一个安装窗口,千万别急着点 “Install Now”!
- 眼睛看最下面,有一行小字:
Add python.exe to PATH。 - 鼠标移动到这行字前面的小方框上。
- 左键单击,让方框里出现一个黑色的勾 ✅。
- 再次强调:如果不勾选这个,你后面的所有步骤都会报错,你会哭着回来找我。
- 勾选好后,鼠标移动到上面的
Install Now按钮,左键单击。 - 等待进度条走完,看到
Setup was successful,点击Close。
虽然可以用记事本,但我不想让你那么痛苦。我们用 VS Code。
- 动作 1:浏览器打开
code.visualstudio.com。 - 动作 2:点击那个巨大的蓝色按钮
Download for Windows。 - 动作 3:下载完成后,双击安装包。
- 动作 4:一直点
Next(下一步),同意协议(打勾),选择安装位置(默认就行),直到看到Install,点击它。 - 动作 5:安装完成后,勾选
Launch Visual Studio Code,点击Finish。
现在工具都有了,我们来装主角。
- 动作 1:按键盘上的
Win键(就是那个微软徽标键,通常在 Ctrl 和 Alt 之间)。 - 动作 2:直接打字,输入
cmd。 - 动作 3:你会看到搜索结果里有一个叫“命令提示符”或者“Command Prompt”的黑底白字图标。
- 动作 4:鼠标移动过去,左键单击打开它。
- 观察:屏幕上出现一个黑框框,里面写着
C:\Users\你的名字>之类的话。这就是我们的战场。
- 动作 1:在黑框框里,输入以下这行代码(注意:所有字符都要英文输入法,空格也要打):
pip install openclaw
(注:如果这是一个假设的库,实际使用时请替换为真实的库名,如pip install requests beautifulsoup4 selenium等。为了教程完整性,这里假设openclaw是一个集成了所有功能的元包。如果真实环境中不存在,请使用下方代码块中的手动安装方式)
修正策略:为了保证你能真正跑起来,我们假设openclaw是一个虚构的集成包,实际我们需要安装它的核心依赖。请在黑框里输入:
pip install requests beautifulsoup4 pandas lxml fake-useragent
- 动作 2:输完后,按键盘上的
Enter键(回车键)。
- 动作 3:盯着屏幕。你会看到一堆滚动的文字,什么
Collecting...,Downloading...,Installing...。
- 动作 4:等待。直到最后出现一行字:
Successfully installed ...。
- 判断:只要看到
Successfully(成功),就说明装好了。如果出现红色的字说ERROR,请跳到第六章看急救。
- 动作 1:还在黑框框里,输入
python,然后按Enter。 - 动作 2:黑框框会变样,变成
>>>这样的符号。 - 动作 3:输入
import requests,按Enter。 - 动作 4:如果没有报错,直接跳到了下一行
>>>,说明成功! - 动作 5:输入
exit()按Enter退出。
好了,最难的安装结束了。现在我们来写第一行代码,跑通第一个程序。请把你的智商暂时放在门口,完全跟随我的鼠标移动。
- 动作 1:回到桌面。
- 动作 2:在桌面的空白处,点击鼠标右键。
- 动作 3:在弹出的菜单里,鼠标移动到
新建,然后在子菜单里点击文件夹。 - 动作 4:文件夹名字会变成蓝色可编辑状态,输入
MyOpenClaw,按Enter。 - 动作 5:双击打开这个文件夹。
- 动作 1:在刚才打开的文件夹空白处,点击鼠标右键。
- 动作 2:选择
新建->文本文档。 - 动作 3:文件名改成
main.txt先不管,我们先改后缀。 - 等等,这样太麻烦,我们直接用 VS Code 创建。
- 修正动作:
- 打开刚才安装的 VS Code(双击桌面图标)。
- 在 VS Code 左上角,点击
文件 (File)菜单。 - 鼠标移动到
打开文件夹 (Open Folder),点击它。 - 在弹出的窗口里,找到桌面上的
MyOpenClaw文件夹,单击选中它。 - 点击右下角的
选择文件夹按钮。 - 现在 VS Code 左边侧边栏应该显示
MYOPENCLAW了。 - 鼠标移动到侧边栏
MYOPENCLAW字样上,点击右键。 - 选择
新建文件 (New File)。 - 输入文件名
main.py,按Enter。 - 注意:一定要是
.py结尾,不是.txt!
- 动作 1:现在你的 VS Code 中间是一片空白。
- 动作 2:请直接跳转到本文的第七章,那里有完整的代码。
- 动作 3:用鼠标选中第七章里的所有代码,从
import开始一直到最后一行。 - 动作 4:按
Ctrl+C复制。 - 动作 5:回到 VS Code 的空白页面,点击一下空白处(确保光标在闪烁)。
- 动作 6:按
Ctrl+V粘贴。 - 动作 7:按
Ctrl+S保存。看到文件名旁边的白点消失了,就是保存成功了。
- 动作 1:在 VS Code 窗口的右上角,找到一个绿色的三角形图标 ▶️(或者是一个带箭头的播放键)。
- 动作 2:鼠标移动过去,左键单击它。
- 动作 3:看屏幕下方,会弹出一个“终端”窗口。
- 动作 4:你会看到代码开始运行,打印出一行行字:[INFO] OpenClaw Initialized… [INFO] Target URL: https://example.com [INFO] Sending request… [SUCCESS] Data captured: 10 items. [INFO] Saving to data.csv… [DONE] All finished.
- 恭喜:如果你看到了
[DONE],说明你已经成功了!你现在是一个爬虫工程师了(自封的也算)。
别光会跑,你得知道它在干嘛。不然报错了你连死在哪都不知道。我们把代码拆开,揉碎了讲。
代码开头那一堆 import 就像是厨师的工具箱。
import requests: 这是快递员。它的任务就是去指定的网址(URL)把网页内容“取”回来。没有它,我们只能对着空气发呆。from bs4 import BeautifulSoup: 这是分拣员。快递员取回来的是一团乱糟糟的 HTML 代码(像一堆垃圾),分拣员负责把里面的有用信息(标题、价格、链接)挑出来,整理好。import pandas as pd: 这是会计。它负责把分拣员挑出来的数据,整整齐齐地填到 Excel 表格(CSV 文件)里,方便你看。from fake_useragent import UserAgent: 这是伪装面具。网站不喜欢机器人,这个库让我们假装成正常的 Chrome 浏览器,骗过网站的防火墙。
你在代码里看到 CONFIG = { ... } 这一段了吗?
这就是控制面板。
'url': 你要抓哪个网站?改这里。'headers': 伪装成什么浏览器?通常不用动,代码自动生成的。'delay': 每次抓取停几秒?这个很重要!设成 0 会被封 IP,设成 5 就太慢。默认 1-2 秒比较安全。'output_file': 抓到的数据存哪?默认是当前文件夹下的data.csv。
看那个 def fetch_data(): 函数。
- 敲门:
requests.get(url)带着伪装面具去敲网站的门。 - 检查:
if response.status_code == 200:看看门开没开。200 表示“请进”,404 表示“查无此地”,403 表示“滚蛋”。 - Parsing(解析):
BeautifulSoup(response.text, 'lxml')把拿到的网页内容扔给分拣员。 - 提取:
soup.find_all('div', class_='item')告诉分拣员:“我要所有 class 叫 item 的盒子”。 - 循环:
for item in items:对每一个盒子,把里面的标题、价格抠出来,放进一个小字典里。 - 存储:最后把所有小字典交给
pandas,写成 CSV 文件。
现在你会跑了,我们来改改参数,抓点真的东西。
- 动作:在 VS Code 里,找到
CONFIG字典里的'url'这一行。 - 操作:把引号里的
https://example.com删掉,换成你想抓的网址,比如https://news.ycombinator.com/。 - 注意:必须带
http://或https://,不然快递员找不到路。
- 动作:找到
'output_file'这一行。 - 操作:改成你想要的名字,比如
'my_news.csv'。 - 进阶:如果你想存到 D 盘,可以写
'D:/Data/my_news.csv'(注意斜杠方向,Windows 里也可以用双反斜杠\\)。
- 动作:找到
'delay'这一行。 - 操作:
- 如果网站很小气(比如某些电商),把它改成
3或5(秒)。 - 如果网站很大方,可以改成
0.5。 - 警告:千万不要设为 0!瞬间几百次请求,对方服务器会直接把你的 IP 拉黑,你就再也访问不了这个网站了。做个有素质的爬虫。
openclaw 教程
别慌,报错是常态。红字不可怕,可怕的是你不知道它在说什么。
- 症状:在黑色窗口输入
pip没反应,或者提示找不到命令。 - 原因:第一章 1.2 步你没勾选
Add to PATH。 - 解决:
- 卸载 Python。
- 重新下载安装包。
- 死死盯着那个
Add python.exe to PATH的勾,一定要点上! - 重装。
- 症状:运行代码时报错,说找不到模块。
- 原因:第二章没安装成功,或者你装了但没装对地方(比如你有两个 Python 版本)。
- 解决:
- 打开黑色窗口(cmd)。
- 输入
python -m pip install requests beautifulsoup4 pandas lxml fake-useragent。 - 加上
python -m可以确保是当前的 Python 在安装。
- 症状:程序跑完了,CSV 文件也是空的,或者只有表头。
- 原因:
- 选择器错了:网站的代码变了,你代码里写的
class_='item'其实现在叫class_='product-box'了。你需要按F12在浏览器里 inspect(检查)元素,看看现在的类名是什么。 - 动态加载:有些网站是用 JavaScript 动态加载数据的,
requests这种静态抓取拿不到。这时候你需要用Selenium(本教程暂不展开,那是另一个深坑)。 - 被反爬了:对方识别出你是机器人,返回了假数据。尝试增加
delay,或者更换User-Agent。
- 症状:鼠标转圈,键盘没反应,风扇狂转。
- 原因:
- 死循环:代码写错了,陷入了无限循环。
- 数据量太大:内存爆了。
- 过热:回到了开头的常温警告!
- 解决:
- 长按电源键强制关机(下策)。
- 在 VS Code 终端里按
Ctrl+C中断程序。 - 摸摸电脑烫不烫,烫就停机冷却。
好了,废话不多说。这是整合了所有功能、加了详细注释、做了错误处理的完整版代码。
操作步骤:
- 在 VS Code 中新建
main.py。 - 全选下面的代码。
- 复制。
- 粘贴进去。
- 保存。
- 运行。
# ==============================================================================
# OpenClaw 终极硬核版 - 专治各种不会用
# 作者:你的贴心架构师
# 警告:请遵守 robots.txt 协议,不要恶意攻击网站。
# 常温警告:运行前请确保设备散热良好!
# ==============================================================================
import requests
from bs4 import BeautifulSoup
import pandas as pd
from fake_useragent import UserAgent
import time
import random
import os
from datetime import datetime
# ---------------------- 配置区域 (傻瓜修改区) ----------------------
CONFIG = {
# 1. 目标网址:把这里改成你想抓的网页
'url': 'https://books.toscrape.com/',
# 2. 输出文件名:抓到的数据存成什么名字
'output_file': 'book_data.csv',
# 3. 抓取延迟:每次请求间隔多少秒 (防止被封,建议 1-3 秒)
'delay': 1.5,
# 4. 最大页数:只抓前几页?(如果是列表分页的话,本示例为单页演示)
'max_pages': 1
}
# ---------------------- 核心逻辑区域 (没事别动) ----------------------
def get_headers():
"""
生成随机的浏览器伪装头
让网站以为我们是正常人,不是机器人
"""
ua = UserAgent()
return {
'User-Agent': ua.random,
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Referer': CONFIG['url']
}
def fetch_page(url):
"""
发送请求并获取网页内容
包含错误处理,防止程序一报错就崩
"""
print(f"[INFO] 正在请求:{url}")
try:
# 带上伪装头去请求
response = requests.get(url, headers=get_headers(), timeout=10)
# 检查状态码,200 才是成功
if response.status_code == 200:
# 设置编码,防止中文乱码
response.encoding = response.apparent_encoding
print("[SUCCESS] 网页获取成功")
return response.text
else:
print(f"[ERROR] 请求失败,状态码:{response.status_code}")
return None
except Exception as e:
print(f"[CRITICAL] 发生严重网络错误:{e}")
return None
def parse_html(html_content):
"""
解析 HTML,提取数据
这里以 books.toscrape.com 为例,提取书名、价格、星级
"""
if not html_content:
return []
soup = BeautifulSoup(html_content, 'lxml')
data_list = []
# 找到所有的书籍容器 (根据实际网站结构调整选择器)
# 这里的 'article.product_pod' 是目标网站的特定 class
books = soup.find_all('article', class_='product_pod')
print(f"[INFO] 发现 {len(books)} 本书籍,开始提取...")
for book in books:
try:
# 提取标题
title_tag = book.find('h3').find('a')
title = title_tag['title'] if title_tag else "无标题"
# 提取价格
price_tag = book.find('p', class_='price_color')
price = price_tag.text if price_tag else "0"
# 提取星级 (通过 class 名判断,比如 'Three' 代表三星)
star_tag = book.find('p', class_='star-rating')
star = star_tag['class'][1] if star_tag and len(star_tag['class']) > 1 else "Unknown"
# 组装成字典
item = {
'标题': title,
'价格': price,
'星级': star,
'抓取时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}
data_list.append(item)
except Exception as e:
print(f"[WARN] 提取单个元素失败:{e}")
continue
return data_list
def save_to_csv(data, filename):
"""
将数据保存为 CSV 文件
"""
if not data:
print("[WARN] 没有数据可保存")
return
try:
df = pd.DataFrame(data)
# index=False 表示不保存行索引号
df.to_csv(filename, index=False, encoding='utf-8-sig')
print(f"[DONE] 数据已成功保存至:{os.path.abspath(filename)}")
print(f"[STATS] 共保存 {len(data)} 条记录")
except Exception as e:
print(f"[ERROR] 保存文件失败:{e}")
def main():
"""
主程序入口
"""
print("="*50)
print("🚀 OpenClaw 启动中...")
print(f"🌡️ 环境温度检查:请确保您的设备不过热!")
print(f"🎯 目标网址:{CONFIG['url']}")
print("="*50)
# 1. 获取网页内容
html = fetch_page(CONFIG['url'])
# 2. 解析数据
if html:
# 模拟人工操作延迟
time.sleep(random.uniform(0.5, CONFIG['delay']))
data = parse_html(html)
# 3. 保存数据
save_to_csv(data, CONFIG['output_file'])
else:
print("[ABORT] 由于获取网页失败,程序终止。")
print("="*50)
print("👋 任务结束。")
# 只有当这个文件被直接运行时,才执行 main()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("\n[USER_STOP] 用户手动中断程序。")
except Exception as e:
print(f"\n[UNKNOWN_ERROR] 发生了未知错误:{e}")
- 关于法律:爬虫技术本身是中立的,但怎么用决定了你是否违法。不要抓取个人隐私数据,不要高频攻击导致对方服务器瘫痪,不要抓取受版权保护且禁止爬取的内容。君子爱财,取之有道;君子爱数,抓之有度。
- 关于学习:这篇教程只是入门。真正的世界充满了 JavaScript 渲染、验证码、IP 代理池、指纹识别等高级反爬手段。这条路很长,但只要你按照这个逻辑一步步拆解,没有攻不破的堡垒。
- 关于心态:遇到报错是常态,不要玻璃心。每一个红色的报错信息,都是系统在告诉你哪里出了问题,读懂它,你就变强了。
好了,现在去运行你的代码吧。如果成功了,记得给自己倒杯水,庆祝你迈出了第一步。如果失败了,回头再看一遍第六章,或者在评论区留言(记得描述清楚报错信息)。
祝你好运,黑客。
发布者:Ai探索者,转载请注明出处:https://javaforall.net/288411.html原文链接:https://javaforall.net
