1. 项目背景与核心思路
那天早上我在地铁上刷手机时,突然冒出一个想法:能不能只用手机和QQ聊天,就让AI帮我自动生成一个新闻网站?毕竟现在各种AI工具这么发达,理论上完全可能实现"无电脑开发"。这个念头让我兴奋不已,立刻开始着手尝试。
核心工具选择了最近很火的OpenClaw。它是一个开源的AI代理框架,可以通过自然语言指令完成各种编程任务。相比其他AI工具,OpenClaw有几个独特优势:
- 支持多模型切换(可以同时接入不同的大模型)
- 具备长期记忆能力
- 可以通过简单的聊天指令控制
- 开源且社区活跃
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 准备工作与环境搭建
2.1 手机端工具准备
要实现全程手机操作,需要以下几个APP:
- QQ/TIM:作为主要交互界面
- Termux:安卓端的Linux终端模拟器
- Aid Learning:内置Python环境的APP
- JuiceSSH:SSH连接工具(备用)
提示:Termux需要从F-Droid下载最新版,Google Play上的版本可能缺少关键功能。
2.2 OpenClaw的安装配置
在Termux中执行以下命令:
bash复制pkg update && pkg upgrade
pkg install python git
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pip install -r requirements.txt
遇到的主要问题及解决方案:
- 存储权限问题:
bash复制
termux-setup-storage - 缺少依赖:
bash复制
pkg install libjpeg-turbo libcrypt
3. 网站生成的核心流程
3.1 通过QQ发送指令
我在QQ群里给OpenClaw机器人发送了这样的指令:
code复制请帮我创建一个科技新闻网站,要求:
1. 使用Python Flask框架
2. 包含首页、分类页、详情页
3. 自动抓取主流科技媒体新闻
4. 支持关键词搜索
5. 适配移动端
3.2 OpenClaw的工作流程
-
需求分析:OpenClaw先确认了几个关键点:
- 新闻源选择(我指定了36氪、虎嗅等)
- 网站配色方案(选择了科技蓝为主色调)
- 部署方式(选择Vercel免费托管)
-
代码生成:
OpenClaw生成了以下核心文件:app.py:Flask主程序scraper.py:新闻爬虫templates/:Jinja2模板requirements.txt:依赖列表
-
自动测试:
OpenClaw在Termux中启动了测试服务器:bash复制
python app.py并通过ngrok生成了临时测试地址。
4. 关键技术实现细节
4.1 新闻爬虫设计
OpenClaw实现的爬虫有几个亮点:
python复制async def fetch_news():
headers = {'User-Agent': 'Mozilla/5.0'}
async with aiohttp.ClientSession() as session:
tasks = []
for source in NEWS_SOURCES:
tasks.append(fetch_source(session, source))
return await asyncio.gather(*tasks)
特点:
- 使用aiohttp实现异步抓取
- 自动识别不同网站的DOM结构
- 内置去重机制(基于标题相似度)
4.2 前端自适应方案
OpenClaw选择了PureCSS作为基础框架,因为:
- 轻量级(仅3.8KB gzipped)
- 响应式设计开箱即用
- 无需构建步骤
关键CSS片段:
css复制@media screen and (max-width: 768px) {
.news-card {
width: 100%;
margin-bottom: 1rem;
}
}
5. 部署与优化
5.1 Vercel部署
通过Termux完成部署:
- 安装Vercel CLI:
bash复制
npm install -g vercel - 登录:
bash复制
vercel login - 部署:
bash复制
vercel --prod
5.2 自动化更新
设置了两层自动化:
- 爬虫定时任务:
bash复制
crontab -e */30 * * * * /data/data/com.termux/files/home/openclaw/run_scraper.sh - GitHub Actions自动构建:
yaml复制name: Deploy on: schedule: - cron: '0 */6 * * *'
6. 遇到的问题与解决方案
6.1 手机端开发限制
问题:Termux中Python包安装失败
解决:改用pip的--user参数
bash复制pip install --user scrapy
6.2 OpenClaw指令超时
问题:复杂任务执行到一半中断
解决:拆分指令为多个步骤
code复制第一步:先搭建Flask基础框架
第二步:添加首页模板
第三步:实现爬虫功能
6.3 新闻内容格式化
问题:不同来源的HTML结构差异大
解决:添加后处理规则
python复制def clean_content(html):
# 移除广告标签
for tag in ['aside', 'iframe', 'script']:
html = re.sub(f'<{tag}.*?>.*?</{tag}>', '', html)
return html
7. 成果展示与使用体验
最终生成的网站包含以下功能:
- 首页新闻流(自动更新)
- 按领域分类(AI/区块链/智能硬件等)
- 站内搜索(基于Whoosh实现)
- 暗黑模式切换
访问速度测试:
- 首屏加载:1.2s(3G网络)
- 搜索响应:<300ms
我在手机上用Chrome的Lighthouse测试得分:
- 性能:92
- 无障碍:89
- 最佳实践:100
- SEO:93
8. 经验总结与进阶建议
手机开发的几个心得:
- 多用云服务减轻本地负担(如把数据库放在Supabase)
- 复杂任务拆分成多个聊天指令
- 善用Termux的浮动窗口功能
OpenClaw使用技巧:
- 给指令添加明确的约束条件(如"代码要兼容Python 3.8")
- 复杂任务先让AI输出流程图再编码
- 定期清理对话历史保持上下文清晰
性能优化建议:
- 添加CDN缓存静态资源
- 实现增量式爬取
- 对新闻内容做摘要生成
这个项目证明,在2023年,仅用手机确实可以完成一个完整网站的开发和部署。OpenClaw的表现超出预期,特别是在理解复杂需求和生成可维护代码方面。不过也发现手机开发的一些局限,比如调试不够方便、多任务切换效率低等。
