刷新产品页面并将数据复制到电子表格中曾经是常态。这种方法虽然有效,但速度慢、操作混乱,而且容易遗漏真正重要的信息。现在我们有了更好的选择。有了 Crawlbase 直接从网站提取干净的产品数据,再由人工智能筛选出干扰数据,监控将变得更加精准。它发展成为一个系统,可以预警价格的突然波动,在库存下滑时发出警报,甚至在趋势显现之前就将其识别出来。简而言之,现在你可以通过网页抓取来检测产品趋势,而无需再依靠猜测。

因此,在本指南中,我们创建了一个让您感觉更接近与您一起工作的数字分析师的工具。

目录

AI产品监控工具工作流程

将我们将要构建的系统想象成一个接力赛。 Crawlbase 从亚马逊、eBay 或你指定的任何其他商店抓取产品页面。这些信息会被精简,只保留有用的部分,例如价格、产品名称和库存状态。数据清理完成后,会传输到 Perplexity AI,它会深入挖掘,并发现人们可能忽略的信息:价格突然上涨、库存缓慢售罄,或者趋势正在形成。

最后,这些见解被汇编并以报告或警报的形式发布,以便人们采取行动。

硬件需求

在开始构建之前,先做好一些准备工作会很有帮助。你不需要成为专家,但做一些基础工作会很有帮助。

需要掌握的技能

  • 基础版 Python 技能:能够阅读脚本、调整功能并运行它们而不会迷失。
  • 对 REST API 的一些了解:您应该熟悉发送请求和检查响应。
  • 当你向 AI 模型提供结构化提示时,它会如何响应,这是一个大致的概念。

创建 AI 产品监控解决方案的工具

  • A Crawlbase 与您的帐户 Crawling API 令牌。
  • Perplexity AI 的 API 密钥。
  • 安装了 Python 的本地机器。

一旦这些到位,我们就可以开始构建脚本来提取产品数据,通过 AI 运行它,并让系统为您发现变化和模式。

设置工具

现在,让我们准备好环境。我们将设置 Crawlbase 用于抓取,并使用 Perplexity AI 进行分析。

Crawlbase 设置

  1. 在创建新帐户 Crawlbase 并登录。
  2. 复制您 Crawling API 普通请求令牌。这是我们将在脚本中使用的。
  3. 新账户包含 1,000 次免费请求。如果您 添加账单详情 在使用它们之前,您可以解锁额外的 9,000 个免费积分。

Perplexity AI 设置

困惑 提供与 OpenAI 兼容的 API,使集成变得简单。

  1. Perplexity 帐户仪表板.
  2. 在您的 Python 代码中,像这样配置客户端:
1
2
3
4
5
6
进口 openai

客户端=openai.OpenAI(
api_key=“ “,
基本网址=“https://api.perplexity.ai”
)

保持密钥的私密性。不要提交到 GitHub 或在公共存储库中共享。

步骤 1:获取产品数据

在追踪任何商品之前,我们需要找到一种方法来从商店网站提取产品信息。这基本上是第一步。首先,复制下面的脚本。将其保存为 crawling.py 我们稍后会在此基础上继续改进。

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
,来自 请求异常 进口 请求异常
进口 JSON
进口 要求

DEF crawl_amazon_product_details(网址: STR)-> STR:
API_TOKEN = "<Crawlbase 正常请求 token>”
API_ENDPOINT = “https://api.crawlbase.com/”

参数= {
“令牌”:API_TOKEN,
“网址”:网址,
“刮刀”: “亚马逊产品详情”
}

响应 = 请求.get(API_ENDPOINT,params=params)
响应.raise_for_status()

product_json = json.loads(response.text)

数据 = {
“网址”:product_json[“身体”][“canonicalUrl”],
“价钱”:product_json[“身体”][“原始价格”],
“货币”:product_json[“身体”][“货币”],
“名称”:product_json[“身体”][“名称”]
}

必填字段 = [“价钱”, “名称”, “网址”, “货币”]
缺失字段 = [字段 HPMC胶囊 部分 in 必填字段 if 不会 数据.获取(字段)]

if 缺失字段:
提高 值错误(f“数据提取失败:缺少必填字段: {','.join(缺失字段)}")

回报 data

确保替换占位符 <Crawlbase Normal requests token> 和你的实际 Crawlbase 令牌。

第 2 步:使用 Perplexity AI 分析数据

光是数字本身并没有多大意义,除非我们能理解它们的含义。这正是 Perplexity 的用武之地。我们将添加一个函数,用于获取产品记录,执行快速检查以确保一切正常,然后显示一些有用的统计数据,例如总记录数、最早和最晚日期、价格范围,甚至差异。

创建一个名为 perplexity_ai.py 并将脚本放入其中。

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
112
113
114
115
116
117
118
119
120
进口 JSON
进口 openai
,来自 日期时间 进口 日期时间、时间增量
DEF 分析数据(产品):
if LEN(产品) 2:
提高 值错误(“数据不足,无法分析”)
分析数据 = {
“总记录数”: LEN(产品),
“日期范围”{
“最早”: 产品[-1][“时间戳”],
“最新的”: 产品[0][“时间戳”]
},
“价格历史”:[]
}
HPMC胶囊 产品展示 in 反向的(产品):
分析数据[“价格历史”]。附加({
“时间戳”: 产品[“时间戳”],
“价钱”: 产品[“价钱”],
“货币”: 产品[“货币”]
})
价格 = [p[“价钱”] HPMC胶囊 p in 分析数据[“价格历史”]]
分析数据[“统计数据”] = {
“最低价格”: 分钟(价格),
“最高价格”: 最大(价格),
“当前价格”:价格[-1],
“价格范围”: 最大(价格) - 分钟(价格),
“价格差异”: 总和((对- 总和(价格)/LEN(价格)**2 HPMC胶囊 p in 价格)/ LEN(价格)
}
提示 = f"""
分析以下产品价格数据并以 JSON 格式提供见解:
产品数据:
{json.dumps(analysis_data,缩进=2)}
请分析此数据并返回具有以下结构的 JSON 响应:
{{
"异常":[
{{
"type": "price_spike|price_drop|unusual_pattern",
"description": "异常描述",
“严重性”:“低|中|高”,
"timestamp": "发生时间",
“信心”:0.85
}}
],
"趋势": [
{{
“类型”:“增加|减少|稳定|波动”,
"description": "趋势概要",
"百分比变化": -5.2,
"time_period": "上周|上个月|总体",
“信心”:0.90
}}
],
"模式": [
{{
“类型”:“季节性|每周|每日|随机”,
"description": "模式描述",
"频率": "每日|每周|每月",
“信心”:0.75
}}
],
"建议": [
“基于分析的可行建议”
]
}}
专注于:
1. 检测异常价格变化(异常)——寻找突然的飙升或下降
2. 识别趋势——整体价格方向和百分比变化
3. 对模式进行分类——季节性、每周或其他重复模式
4. 提供可行的见解
仅返回有效的 JSON,没有附加文本。
“”“

尝试:
客户端 = openai.OpenAI(api_key=“ “,base_url=“https://api.perplexity.ai”)
响应=客户端.聊天.完成.创建(
模型=“声纳专业版”,
消息=[
{
“角色”: “系统”,
“内容”: “您是一位专门从事价格分析的数据分析师。请以 JSON 格式提供准确的、数据驱动的见解。”
},
{
“角色”: “用户”,
“内容”: 迅速的
}
],
温度=0.1,
最大令牌数=2000
)

分析结果 = json.loads(响应.选择[0].消息.内容)
分析结果[“元数据”] = {
“分析时间戳”:datetime.now().isoformat(),
“数据点分析”:分析数据[“总记录数”],
“模型使用情况”: “声纳专业版”
}

回报 分析结果

openai.身份验证错误:
回报 {
“错误”: “OpenAI API 身份验证失败。请检查您的 API 密钥。”,
“异常现象”:[],
“趋势”:[],
“模式”:[]
}
json.JSONDecode错误:
回报 {
“错误”: “无法解析 OpenAI 响应。模型可能返回了无效的 JSON。”,
“异常现象”:[],
“趋势”:[],
“模式”:[]
}
特殊课程 as e:
回报 {
“错误”: f“分析失败: {STR(e)}",
“异常现象”:[],
“趋势”:[],
“模式”:[]
}

该脚本将原始产品价格数据转换为结构化数据集,要求 AI 模型分析其中的异常、趋势和模式,然后以 JSON 格式返回这些见解,同时安全地处理错误。

请记住,提示并非固定不变。您可以根据想要表达的意思,调整措辞、缩短内容,甚至从不同的角度提问。您真正需要做的就是调整代码中的文本,AI 会相应地调整其响应。

步骤3:如何生成AI分析报告

在执行代码之前,我们需要一些测试数据来满足本博客的目的。您可以按照以下步骤操作:

  1. GitHub存储库 并另存为 dummy_data.py 填充数据库。
  2. 通过运行以下命令来执行脚本:
1
python dummy_data.py

这应该像这样在您的数据库中插入记录:

  1. 插入虚拟数据后,复制以下脚本并将其保存为 price_monitoring.py
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
,来自 数据库 进口 查询产品;
,来自 perplexity_ai 进口 分析数据;
进口 JSON

DEF 监控价格():
尝试:
产品=查询产品()
分析结果 = 分析数据(产品)

打印(“ =” * 80)
打印(“产品监测分析结果”)
打印(“ =” * 80)
打印()

打印(json.dumps(分析结果,缩进=2, 确保_ascii=))

打印()
打印(“ =” * 80)
打印(“分析结果结束”)
打印(“ =” * 80)

特殊课程 as e:
打印(f”错误监控价格: {STR(e)}")

if __名字__ == “__主要的__”:
# # 如果您不想使用虚拟数据,请取消注释下面的代码
# 从爬取导入 crawl_amazon_product_details
# 从数据库导入 add_products_to_db

#product_data = crawl_amazon_product_details("https://www.amazon.com/Apple-iPhone-16-Version-128GB/dp/B0DHJH2GZL/ref=sr_1_1")
# 将产品添加到数据库(产品数据)
监控价格()

一切就绪后,运行代码:

1
python 价格监控.py

以下是 Perplexity AI 生成的示例输出:

步骤 4:自动化和安排 AI 报告

对于演示,我们使用了一个名为schedule.py的小脚本(您可以在 GitHub回购)。它设置为每天上午 10:00 运行一次。要手动启动它,只需运行:

1
python 时间表.py

如果你想要一个在实际使用中不出错的程序,那么你需要使用系统原生的调度程序。在 Linux 上,这通常意味着设置一个 cron作业在 Windows 上,你可能会选择 “任务计划程序”.

步骤5:可视化AI结果

拉价格只是工作的一半。更难的是,当你查看整套数据时,弄清楚他们到底在说什么。这时,一些视觉效果就能让事情变得轻松很多。

如果你想要一些流畅且交互性强的东西,那么使用 Plotly 或 Bokeh 的轻量级仪表盘就足够了。你可以获得可以悬停、放大或直接拖放到网页中的图表。

或者,如果您想要更快,请使用 Matplotlib or 海生。它们一直存在,具有无限的灵活性,您可以根据自己的喜好来装扮它们。

如果你不想长时间盯着数字或条形图,甚至可以依靠人工智能。像 Perplexity 这样的服务会生成简短易懂的数据集摘要。这样,你就不用费力地筛选一堆数值,而是可以直接在视觉效果旁边看到一些清晰的、高层次的要点。

总结

抓取页面只是一个开始。一旦你 Crawlbase 结合 Python 和一些 AI,整个过程会变得更大:您不仅仅是收集数据,还将其塑造成可以采取行动的见解。

如果你好奇这在现实世界中是什么样子,那么值得在你的竞争对手身上测试一下。 Crawlbase 处理复杂性,您可以提取所需的数据,并让人工智能在其他人注意到之前指出市场的变化。 给 Crawlbase 今天尝试一下 并让自己领先一步。

常見問題解答

问:如果我的请求一直被阻止怎么办?

A. 被屏蔽是网络爬虫最大的障碍之一。 Crawlbase,这将通过轮换 IP 地址和更新用户代理自动处理。每个请求看起来都是独一无二的,就像一个真实的访客,这可以保持您的爬虫程序正常运行并提高成功率。

问:如果网站改变其布局或数据结构会发生什么?

A. 网站会不断演变;它们会频繁更新布局和 HTML 结构。当这种情况发生时,您现有的选择器可能会失效。解决方法通常很简单:根据新的结构调整选择器。因为 Crawlbase 总是返回完整的 HTML,您不需要从头开始重建爬虫;只需微调解析逻辑。

问:人工智能模型在分析抓取的数据时会产生“幻觉”吗?

A. 有时,AI 生成的答案读起来很顺畅,但实际上与底层数据并不匹配。避免这种情况的最佳方法是向模型提供清晰、结构化的指令,并限制开放式的创造力。要求特定输出(例如摘要或表格)的提示通常可以使 AI 与实际数据集保持一致。