-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask.json
More file actions
111 lines (111 loc) · 3.83 KB
/
Copy pathtask.json
File metadata and controls
111 lines (111 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{
"project": "租房信息收集器",
"description": "从安居客、贝壳、链家收集租房信息并导出 JSON/CSV",
"tasks": [
{
"id": 1,
"title": "租房信息收集器 - 基础架构",
"description": "创建爬虫基础模块和类型定义",
"steps": [
"创建 lib/scrapers/types.ts - 定义租房信息类型(城市、区域、价格区间、租赁类型、朝向、来源平台等)",
"创建 lib/scrapers/config.ts - 爬虫配置(User-Agent、API端点、app_secret等)",
"创建 lib/scrapers/utils.ts - 通用工具函数(请求延迟、错误处理、数据清洗、导出工具)"
],
"passes": true
},
{
"id": 2,
"title": "链家爬虫实现",
"description": "实现链家租房信息爬虫",
"steps": [
"研究链家移动端API(app.api.lianjia.com)",
"实现token生成逻辑(SHA1 + Base64签名)",
"实现城市查询API",
"实现区域查询API",
"实现房源列表API(支持价格、租赁类型、朝向筛选)",
"实现房源详情API",
"创建 app/api/rental/lianjia/route.ts"
],
"passes": true
},
{
"id": 3,
"title": "贝壳爬虫实现",
"description": "实现贝壳租房信息爬虫",
"steps": [
"研究贝壳网站结构",
"尝试使用类似链家的API方式",
"如API不可用,使用传统爬虫方式(Cheerio解析HTML)",
"实现房源搜索和筛选",
"创建 app/api/rental/beike/route.ts"
],
"passes": true
},
{
"id": 4,
"title": "安居客爬虫实现",
"description": "实现安居客租房信息爬虫",
"steps": [
"研究安居客网站结构",
"实现HTML解析爬虫(Cheerio)",
"处理反爬虫机制(延迟、User-Agent等)",
"实现房源搜索和筛选",
"创建 app/api/rental/anjuke/route.ts"
],
"passes": true
},
{
"id": 5,
"title": "搜索API整合",
"description": "创建统一的搜索入口API",
"steps": [
"创建 app/api/rental/search/route.ts",
"接收用户输入参数:城市、区域、价格区间(min/max)、租赁类型(合租/整租)、朝向、数量",
"并行调用三个平台的爬虫",
"合并去重结果",
"返回统一格式的租房信息列表",
"支持参数:source(lianjia/beike/anjuke/all)"
],
"passes": true
},
{
"id": 6,
"title": "租房收集器前端页面",
"description": "创建租房信息收集器UI",
"steps": [
"创建 app/rental/page.tsx 主页",
"创建 components/rental/SearchForm.tsx 搜索表单组件",
"实现城市选择器",
"实现区域输入/选择",
"实现价格区间输入(最低价-最高价)",
"实现租赁类型选择(合租/整租)",
"实现朝向选择(东/南/西/北/南北/东西)",
"实现收集数量选择",
"创建 components/rental/ResultsList.tsx 结果列表组件",
"简洁表格展示,标注来源平台",
"实现JSON导出功能",
"实现CSV导出功能"
],
"passes": true
},
{
"id": 7,
"title": "测试和优化",
"description": "测试爬虫功能和优化",
"steps": [
"npm run lint 检查代码规范",
"npm run build 确保构建成功",
"浏览器测试 /rental 页面",
"测试链家爬虫API",
"测试贝壳爬虫API",
"测试安居客爬虫API",
"测试搜索表单提交",
"测试结果展示",
"测试JSON导出",
"测试CSV导出",
"优化反爬虫处理(请求间隔、错误重试)"
],
"passes": true
}
]
}