如果你想随时掌握所有在线商店或电商网站上的产品价格,就需要花费大量时间监控每个页面,尤其是在价格突然变动且毫无预警的情况下。手动操作可能非常耗时,并且会严重阻碍你紧跟市场趋势,同时保持产品竞争力。
在这个时代,处理诸如以下广泛而复杂的任务时,必须实现一定的自动化: 价格情报。因此,在这篇博客中,我们将帮助您实现流程自动化,并指导您如何构建 定价刮板 使用 Python 和 Crawlbase 这可以使这项任务更快、更容易、更可靠。
目录
网络数据抓取对价格情报的益处
创新中心 Crawlbase 帮助了解价格情报
分步指南:构建价格抓取工具
应对价格抓取中的挑战
常见问题 (FAQ)
网络数据抓取对价格情报的益处
网页抓取 数据抓取已成为收集数据的重要工具,尤其是在追踪各个电商网站上的产品信息时。大多数市场分析师和企业都使用它从不同来源收集定价数据,并做出明智的决策。如今,许多公司依靠网络抓取来制定和调整定价策略。
让我们仔细看看其主要优点:
实时数据监控
网页抓取的一大强大用途是实时数据提取。您可以运行一个抓取工具,它经过适当的设置,可以自动从亚马逊或 eBay 等各种电商网站抓取最新信息。它可以定位特定的产品页面,监控价格和库存等详细信息。此过程可以完全自动化,每分钟运行一次,以便实时跟踪数据变化,无需手动访问每个网站。抓取工具会在后台处理所有操作。
分析市场趋势
借助网络爬虫提取的数据可以进行整理,帮助数据分析师和决策者更好地理解价格走势,并发现有价值的商业洞察。您的团队可以鸟瞰当前的市场格局,从而有机会发现新兴趋势。
优化您的定价策略
在某些情况下,你需要仔细观察。网络爬虫可以调整为针对特定数据点,以实现特定目标。例如,你可以将爬虫设置为自动监控亚马逊、eBay 或沃尔玛的页面,并每分钟收集产品目录中的价格信息。然后,你可以整理数据,以揭示哪些竞争对手在特定时刻提供最优惠的价格。这种详细程度可以让你更精准地做出营销决策。
创新中心 Crawlbase 帮助了解价格情报
价格情报显然受益于网页抓取,但从零开始构建网页抓取工具并非易事。许多企业之所以举步维艰,就是因为他们不愿投资构建可靠的网页抓取工具。
这不仅仅是聘请专家为你构建工具那么简单。开发者还需要找到合适的工具,以最有效的方式应对常见的数据抓取挑战,而这正是 Crawlbase 帮助。
- Crawling API
Crawlbase的主要产品是 Crawling API 简化您的网页抓取流程。这是一个旨在通过单个请求抓取网页的 API。您只需提供目标 URL 并通过 API 端点发送即可。该 API 会帮您解决大部分抓取难题。
价格抓取的主要优势 Crawlbase
- 实时数据访问 - Crawlbase 不存储或归档任何数据。它旨在抓取目标网页上当前可用的所有数据。这确保您每次向 API 发送请求时都能获得最新且准确的信息。
- 绕过常见的刮板路障 - Crawlbase 解决常见的网页抓取问题,例如机器人检测、验证码和速率限制。该 API 使用数千个持续维护的代理,并由 AI 驱动,确保您几乎 100% 获得高成功率。它还处理 JavaScript 渲染,因此您无需在代码中手动配置无头浏览器或用户代理。
- 轻松且可扩展的集成 – 只需一行代码即可调用 API。发送 API 请求就是这么简单。您可以使用任何支持 HTTP 或 HTTPS 请求的编程语言来插入此调用。此外, Crawlbase 提供开发人员可以免费访问的库和 SDK,以简化扩展时的集成。
- 具有成本效益的解决方案 - 自从 Crawlbase 为网页抓取中最复杂的部分提供解决方案,这可能会对项目的整体成本产生重大影响。通常情况下,选择最低限度的解决方案比花费大部分预算自行解决复杂问题更明智。

分步指南:如何构建价格抓取工具
在本节中,我们将指导您使用 Crawling API 并向您展示设置是多么简单,同时强调其主要功能。
选择目标网站(亚马逊和 eBay)
在开始编写代码之前,提前规划非常重要:确定目标网站、需要提取的数据点以及计划如何使用这些数据。许多开发者自然会从亚马逊和 eBay 等热门网站入手,因为它们提供了丰富多样的数据集,这对于价格情报等应用非常有价值。
对于此编码练习,我们将重点关注以下 SERP URL 作为目标:
Amazon
易趣
设置您的工作空间
此时,您需要选择您喜欢的编程语言。在本例中,我们将使用 Python
因为它被广泛认为是最容易上手的语言之一。话虽如此,你也可以使用任何其他语言;请继续学习并应用这里提供的相同逻辑。
设置你的编码环境
- 安装Python 3 在你的电脑上
- 在我们的文件系统中创建一个根目录。
- 在根目录下,创建一个名为
requirements.txt
,并添加以下条目:
然后运行:
1
| python -m pip 安装 -r 要求.txt
|
使用以下方式发送请求 Crawlbase
让我们从构建亚马逊搜索引擎结果页面的抓取工具开始。在项目的根目录中,创建一个名为 amazon_serp_scraper.py
,然后继续。
将 Import 语句添加到您的脚本中。
1 2 3
| 进口 要求 进口 urllib.parse 在 请求异常 进口 请求异常
|
添加函数使用给定的查询在亚马逊上搜索产品,并使用国家代码和顶级域名(例如 .com 或 .co.uk)的可选参数,并返回产品词典列表。
1
| DEF 从亚马逊获取产品(询问: STR, 国家: STR = 没有,顶级域名: STR = 'com')-> 名单[字典]:
|
设置你的 API 令牌并 Crawlbase 发送请求的端点。
1 2
| API_TOKEN = “ “ API_ENDPOINT = “https://api.crawlbase.com/”
|
通过对 Amazon URL 的搜索查询进行编码并指定 亚马逊SERP抓取工具 以及可选的国家参数。
1 2 3 4 5 6
| 参数= { “令牌”:API_TOKEN, “网址”: f“https://www.amazon。{顶级域名}/s?k={urllib.parse.quote_plus(查询)}", “刮刀”: “亚马逊搜索引擎结果页面”, “国家”: 国家 }
|
将请求发送至 Crawling API,然后解析并返回产品数据。
1 2 3 4 5
| 响应 = 请求.get(API_ENDPOINT,params=params) 响应.raise_for_status()
结果 = 响应.json() 回报 结果['身体']['产品']
|
要执行该程序,请将以下代码片段插入脚本末尾:
1 2 3 4 5 6 7
| if __名字__ == “__主要的__”:
进口 JSON
产品=从亚马逊获取产品(“苹果 iPhone 15 Pro Max 256GB”,国家=“我们”, 顶级域名=“co.uk”) pretty_json = json.dumps(产品,缩进=2) 打印(漂亮的json)
|
您可以修改函数调用中的值以满足您的需求。例如,替换 “苹果 iPhone 15 Pro Max 256GB” 与任何其他产品名称,更改 “我们” 更改为不同的国家/地区代码,或者更新 “co.uk” 到另一个亚马逊域名,例如 “com” or “从”.
完整代码示例:
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
| 进口 要求 进口 urllib.parse 在 请求异常 进口 请求异常
DEF 从亚马逊获取产品(询问: STR, 国家: STR = 没有,顶级域名: STR = 'com')-> 名单[字典]: API_TOKEN = “ “ API_ENDPOINT = “https://api.crawlbase.com/”
参数= { “令牌”:API_TOKEN, “网址”: f“https://www.amazon。{顶级域名}/s?k={urllib.parse.quote_plus(查询)}", “刮刀”: “亚马逊搜索引擎结果页面”, “国家”: 国家 }
响应 = 请求.get(API_ENDPOINT,params=params) 响应.raise_for_status()
结果 = 响应.json()
回报 结果['身体']['产品']
if __名字__ == “__主要的__”:
进口 JSON
产品=从亚马逊获取产品(“苹果 iPhone 15 Pro Max 256GB”,国家=“我们”, 顶级域名=“co.uk”) pretty_json = json.dumps(产品,缩进=2) 打印(漂亮的json)
|
使用以下命令从终端运行脚本:
1
| python amazon_serp_scraper.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
| [ { “名称”: “Apple iPhone 16 Pro Max 256GB:搭载 Apple Intelligence 的 5G 手机 - 沙漠钛金属 + 带 MagSafe 的硅胶保护壳 - 黑色”, “价钱”: “\u00a31,138.00”, “原始价格”: 1138.0, “货币”: “\u00a3”, “提供”: "", “客户评论”: “4.4 颗星,最多 5 颗星”, “客户评论计数”: “367”, “发货信息”: "", “阿信”: “B0DGTJ6Y1S”, “图片”: “https://m.media-amazon.com/images/I/61EpQCNARNL._AC_UY218_.jpg”, “网址”: "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-1", “是总理”: false, “赞助广告”: false, “优惠券信息”: "", “徽章信息”: [], “购买信息”: "" }, { “名称”: “Apple iPhone 11 Pro Max,256GB,午夜绿(翻新)”, “价钱”: “\u00a3264.00”, “原始价格”: 264.0, “货币”: “\u00a3”, “提供”: "", “客户评论”: “4.1 颗星,最多 5 颗星”, “客户评论计数”: “258”, “发货信息”: "", “阿信”: “B082BGTHP6”, “图片”: “https://m.media-amazon.com/images/I/71g5LVVdbaL._AC_UY218_.jpg”, “网址”: "https://www.amazon.co.uk/Apple-iPhone-256GB-Midnight-Renewed/dp/B082BGTHP6/ref=sr_1_16?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-16", “是总理”: false, “赞助广告”: false, “优惠券信息”: "", “徽章信息”: [], “购买信息”: "" } ]
|
接下来创建一个名为 ebay_serp_scraper.py
用于 eBay 集成,并使用我们在 Amazon 抓取工具中应用的相同方法添加以下代码。
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
| 进口 要求 进口 urllib.parse 在 请求异常 进口 请求异常
DEF 从 eBay 获取产品(询问: STR, 国家: STR = 没有,顶级域名: STR = 'com')-> 名单[字典]: API_TOKEN = “ “ API_ENDPOINT = “https://api.crawlbase.com/”
参数= { “令牌”:API_TOKEN, “网址”: f“https://www.ebay。{顶级域名}/sch/i.html?_nkw={urllib.parse.quote_plus(查询)}", “刮刀”: “eBay 搜索结果”, “国家”: 国家 }
响应 = 请求.get(API_ENDPOINT,params=params) 响应.raise_for_status()
结果 = 响应.json()
回报 结果['身体']['产品']
if __名字__ == “__主要的__”:
进口 JSON
产品=从ebay获取产品(“苹果 iPhone 15 Pro Max 256GB”,国家=“我们”, 顶级域名=“co.uk”) pretty_json = json.dumps(产品,缩进=2) 打印(漂亮的json)
|
运行脚本后 python ebay_serp_scraper.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
| [ { “标题”: “新上市iPhone 15 Pro Max - 256GB 钛蓝色”, “副标题”: [“二手”], “价钱”: { “当前的”: { “从”: “\u00a3513.93”, “至”: “\u00a3513.93” }, “趋势价格”: 空, “先前价格”: "" }, “销售日期”: "", “结束日期”: "", “出价次数”: 0, “热度”: "", “额外热度”: [], “客户评论”: { “审查”: "", “计数”: 0, “关联”: "" }, “发货信息”: “未指定邮资”, “图片”: “https://i.ebayimg.com/images/g/cQkAAOSww3toOdUj/s-l500.webp”, “网址”: "https://www.ebay.co.uk/itm/146617243528?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP0SV257V8N99DP0GB2B2FK&hash=item2223119788:g:cQkAAOSww3toOdUj&itmprp=enc%3AAQAKAAAA4FkggFvd1GGDu0w3yXCmi1e4U9NgN8cbPDciCpZxd4y9M7arS1PIV503raP8NGkFrAGVGTcTJ93CtRBBBR%2BVdNPFCvqlvQFqv0p54lMQYaGfzNm2BDkKB8pOYhDKGV44h10dcGqP8Txe9bOa2%2BxUU4c03zlQjb5BBp5tZ6gfqvtXuJtaf6xW09Np944o3hzvtrVoM%2Fv9BcdTnUznCeLvNxWNQB9IG4%2BYEFyqvvcZce%2FbSdKA4hmdFerIaeAjWlWEpu7%2F1ZZV9ElPz9yibQZ6YcvruBvpIS3YYlvAypHn6yp8%7Ctkp%3ABk9SR5yx58DlZQ", “地点”: “英国”, “时间”: { “剩余时间”: “还剩 6 天 23 小时”, “时间结束”: “(周日,08:00)” }, “上市日期”: "", “顶级卖家”: false, “赞助广告”: false, “卖家信息”: “戴维威廉斯1 (2,001) 100%” }, { “标题”: “状况极佳 - Apple iPhone 15 Pro Max 256GB 蓝色钛金属 98% 电池 -1047-”, “副标题”: [“二手”], “价钱”: { “当前的”: { “从”: “\u00a3709.00”, “至”: “\u00a3709.00” }, “趋势价格”: 空, “先前价格”: "" }, “销售日期”: "", “结束日期”: "", “出价次数”: 0, “热度”: “20名观察者”, “额外热度”: [], “客户评论”: { “审查”: "", “计数”: 19, “关联”: “https://www.ebay.co.uk/p/24062761146?iid=236096139018#UserReviews” }, “发货信息”: “未指定邮资”, “图片”: “https://i.ebayimg.com/images/g/xIEAAeSw-NhoILdt/s-l140.webp”, “网址”: "https://www.ebay.co.uk/itm/236096139018?_skw=Apple+iPhone+15+Pro+Max+256GB&epid=24062761146&itmmeta=01JWP0SV29B7VZRTR5336M14WJ&hash=item36f86d2f0a:g:xIEAAeSw-NhoILdt&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1d4wiok8NH9ED6XupF4lEB05soO%2BX9YmeNcvnhAT2xl8%2BMR4mTSpPbdLrOdQTzvZweJCy9AbPRRp%2F3fEqBcyd%2B5KAg80QbLwBoSqH0%2BeYox7n1qscvQrlMrB71D%2FNgjlJfHccWLZ%2FGngbtsV5ccazqhwfxQdUKd0i%2BgDc6vXrrD%2F5SrwBFP5B7By2Vao286t0uJFGHFt28Hit8Si6T2mAYp5VdmEJN4YPv0xAlEwjmiPZ94WWHtYHGzBfZgdg9pRZHngDYjfm0iVEkcLab9c3G5xbhlMKPjRvjgC8DcoRUnHD%2FJSfIkRTLH0PzFBsjmyTw%3D%7Ctkp%3ABFBMpLHnwOVl", “地点”: “英国”, “时间”: { “剩余时间”: "", “时间结束”: "" }, “上市日期”: "", “顶级卖家”: false, “赞助广告”: true, “卖家信息”: “2mselectronics(728)100%” } ]
|
提取和构建价格数据
虽然当前的 API 输出很清晰,并且提供了有价值的信息,但并非所有信息都与我们在此上下文中的特定目标相关。在本节中,我们将演示如何进一步标准化和解析数据,以仅提取所需的特定数据点。
让我们创建一个名为 structured_consolidated_data.py
并插入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13
| 在 amazon_serp_scraper 进口 从亚马逊获取产品 在 ebay_serp_scraper 进口 从 eBay 获取产品
DEF 获取结构化合并数据(询问: STR, 国家: STR = 没有,顶级域名: STR = 'com')-> 名单[字典]: 产品 = []
amazon_data = get_products_from_amazon(查询,国家/地区=国家/地区,top_level_domain =top_level_domain) 产品.扩展([{“产品”: 物品[“名称”], “价钱”: 物品['价格'], “网址”: 物品['网址'], “来源”: “亚马逊”} HPMC胶囊 项目 in amazon_data])
ebay_data = get_products_from_ebay(查询,国家/地区=国家/地区,顶级域名=顶级域名) 产品.扩展([{“产品”: 物品['标题'], “价钱”: 物品['价格']['当前的']['至']。条(), “网址”: 物品['网址'], “来源”: “易趣”} HPMC胶囊 项目 in ebay_data])
回报 产品
|
该脚本从亚马逊和 eBay 提取相关产品数据 Crawlbase 数据刮板。它从每个搜索结果中提取关键详细信息(例如来源、产品、价格和 URL)并将其组合成一个易于使用的列表。
这是完整的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 在 amazon_serp_scraper 进口 从亚马逊获取产品 在 ebay_serp_scraper 进口 从 eBay 获取产品
DEF 获取结构化合并数据(询问: STR, 国家: STR = 没有,顶级域名: STR = 'com')-> 名单[字典]: 产品 = []
amazon_data = get_products_from_amazon(查询,国家/地区=国家/地区,top_level_domain =top_level_domain) 产品.扩展([{“产品”: 物品[“名称”], “价钱”: 物品['价格'], “网址”: 物品['网址'], “来源”: “亚马逊”} HPMC胶囊 项目 in amazon_data])
ebay_data = get_products_from_ebay(查询,国家/地区=国家/地区,顶级域名=顶级域名) 产品.扩展([{“产品”: 物品['标题'], “价钱”: 物品['价格']['当前的']['至']。条(), “网址”: 物品['网址'], “来源”: “易趣”} HPMC胶囊 项目 in ebay_data])
回报 产品
if __名字__ == “__主要的__”:
进口 JSON
产品=获取结构化合并数据(“苹果 iPhone 15 Pro Max 256GB”,国家=“我们”, 顶级域名=“co.uk”)
pretty_json = json.dumps(产品,缩进=2) 打印(漂亮的json)
|
使用以下命令从终端运行脚本:
1
| python Structured_consolidated_data.py
|
一旦获得成功的响应,合并的输出将以结构化格式显示,显示源字段而不是原始数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [ { “产品”: “Apple iPhone 16 Pro Max 256GB:搭载 Apple Intelligence 的 5G 手机 - 沙漠钛金属 + 带 MagSafe 的硅胶保护壳 - 黑色”, “价钱”: “\u00a31,138.00”, “网址”: "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748791075&sr=8-1", “来源”: “亚马逊” }, { “产品”: “Apple iPhone 15 Pro Max(256 GB)- 白色钛金属 - 状况良好”, “价钱”: “\u00a3679.99”, “网址”: "https://www.ebay.co.uk/itm/205475768012?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP14FHS44GRVT9KYP8AFKEW&hash=item2fd74f66cc:g:QkcAAOSwLKRoHd86&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1enej%2BIHaZBwUjnCYNkoIrYanJLRykGLG546KgFE4C%2BH%2FGVT3ptDyAFH87uYJ2y6Ih4qylSr70KgmTvf7QzxWJJb8UIuLl9GWlI4h4QLVbnS26iLFU08zLSz8kbcbyI5kILO9IRzzTpKec0Cxb4G8ujEojvnrdM8G3oP5ud4QwSccYRK7L8PnDvS7qECHgMXmshCmZh749EOMqeDYRFSCqmPYQ6etMUr0y38Wag%2BT%2BLOIkx8XxR3fTC4FbbMPGGUDdNpG1jLJ3e%2F6X9tZuQuDp4lprfyjTKWD564verk%2FxhORgHzaHvDhmmEE121dibsOU%3D%7Ctkp%3ABFBMgvmRweVl", “来源”: “易趣” } ]
|
利用抓取的数据
现在我们已经成功解析了所需数据,可以开始将其应用于基本的定价情报。例如,我们可以编写一个脚本来计算并显示以下商品的平均价格: “苹果 iPhone 15 Pro Max 256GB” 在亚马逊上列出并将其与 eBay 上的平均价格进行比较。
创建一个名为的新文件 market_average_price.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
| 进口 大熊猫 as pd 在 价格解析器 进口 行情 在 结构化合并数据 进口 获取结构化合并数据
产品=获取结构化合并数据(“苹果 iPhone 15 Pro Max 256GB”,国家=“我们”, 顶级域名=“co.uk”) 产品价格 = 过滤(拉姆达 产品:(产品[“价钱”] is 而不去 没有 和 产品[“价钱”].strip() != ''), 产品) sanitized_products = [产品 | {“价钱”: 浮动(价格.fromstring(产品[“价钱”])。数量) } HPMC胶囊
产品展示 in 产品价格]
数据 = 名单(消毒产品) df = pd.DataFrame(数据)
iphone_mask = df['产品'].STR.包含('iPhone', 案件=假,na=假)
iphone_df = df[df['产品'].STR.包含('iPhone', 案件=假,na=假)]
平均价格 = iphone_df.groupby('来源')['价格'].agg(['意思是', '数数'])。圆(2) 平均价格.列 = [“平均价格(英镑)”, “产品数量”]
打印(“\n\n按来源划分的 iPhone 平均价格:”) 打印(平均价格)
amazon_avg = avg_prices.loc['亚马逊', “平均价格(英镑)”] ebay_avg = avg_prices.loc[eBay, “平均价格(英镑)”] 差值 = amazon_avg - ebay_avg
打印(“\n\n价格比较:”) 打印(f“亚马逊平均价格:£{亚马逊平均值}") 打印(eBay 平均价格:£{ebay_avg}") 打印(f“差异:£{不同之处:.2f} (亚马逊 {'更高' if 差异 > 0 其他 '降低'} 比 eBay)\n\n”)
|
要运行脚本,请在终端中执行以下命令:
1
| python market_average_price.py
|
一旦成功,您将看到类似以下内容的输出:

探索完整 GitHub 上的代码库.
使用 Python 处理价格抓取的挑战
速率限制和成功率
默认值 速率限制 等加工。为 Crawling API 对于电子商务网站,每秒最多只能请求 20 次。如果您开始看到 429 错误,则表示您已达到此限制。但是,此限制可以根据您的流量和具体需求增加。您需要联系 Crawlbase 客户支持 寻求帮助。
虽然由于某些网站的不可预测性,成功率有时会有所不同, Crawlbase的良好记录确保在大多数情况下成功率超过 95%。此外,失败的请求无需付费,您可以忽略这些请求,并重新将这些请求发送到 API。
处理 JavaScript 渲染的内容
某些页面需要 JavaScript 来呈现您所需的数据。在这种情况下,您可以将普通请求令牌切换为 JavaScript 令牌。这样,API 就可以使用其无头浏览器基础架构来正确呈现 JavaScript 内容。
如果您注意到 API 响应中缺少数据,则这表明是时候切换到 JavaScript 令牌了。
确保准确性和新鲜度
验证通过抓取收集的数据的准确性和新鲜度始终是一个好习惯。您可以不时手动检查价格,作为一项补充措施,但 Crawlbase 确保您从 API 收到的数据反映抓取时可用的最新信息。
Crawlbase 不会改变或操纵从您的目标网站检索的任何数据。
继续测试 Crawling API 现在。 创建账户 即可获得 1,000 次免费请求。这些请求可用于在做出任何承诺之前评估 API 的响应情况,这是一个无风险的机会,可以显著提升您的项目收益。
常见问题解答 (FAQs)
Q1:网页抓取的价格是多少?
网络价格抓取是指从电商网站、产品列表或竞争对手平台等在线资源自动提取价格信息的过程。企业使用的网络抓取工具包括 Crawlbase 提取实时价格数据,帮助他们监控价格波动、追踪折扣并洞察市场趋势。这有助于制定更明智的定价决策,并提高对竞争对手的响应能力。
Q2:什么是抓取定价数据?
价格数据抓取是指使用自动化脚本从在线平台收集结构化的价格信息。这些信息随后可以进行分析,以支持定价策略、与竞争对手进行基准测试,或输入分析仪表板进行持续的市场评估。
Q3:网络抓取在竞争性价格情报和市场研究中起什么作用?
通过从竞争对手的网页抓取价格,企业可以监控竞争对手的价格,了解市场定位,并识别跨地区和跨渠道的价格趋势。这些数据支持战略规划、需求预测和实时价格优化。