动态定价已成为市场的标准——价格每天根据需求、库存和竞争对手的行为变化10-20次。如果您是Wildberries、Ozon或Avito的卖家,您知道:谁最先知道竞争对手降价,谁就能在搜索结果中保持位置。但所有市场都严格禁止从同一IP进行大规模解析。在本文中,我们将讨论如何通过代理设置自动价格监控,以便全天候收集数据,而不必担心账户或IP地址被封锁的风险。
为什么市场会封锁价格解析以及它是如何工作的
所有大型市场都使用多层保护来防止自动数据收集。原因很简单:大规模解析会给服务器带来负担,并使那些能够收集数据的人获得竞争优势。例如,Wildberries每天记录多达300,000次价格变动——他们不希望这些数据被竞争对手免费获取。
下面是典型的解析保护系统的工作原理:
- 监控来自同一IP的请求频率——如果您在一分钟内打开50个以上的产品页面,系统会判断这不是人类。普通买家每分钟浏览3-5个产品,而解析器则为100-500个。
- 分析User-Agent和请求头——没有正确浏览器头的请求会立即进入黑名单。许多初学者使用标准的Python requests库而不设置请求头——这是保护系统首先检测到的。
- 检查JavaScript和cookies——现代市场使用Cloudflare、DataDome和自有反机器人系统。它们会检查JavaScript的执行、会话的cookies、鼠标和滚动行为。
- IP的地理绑定——如果您使用来自德国或美国的IP解析俄罗斯的Ozon,这看起来很可疑。系统可能会向您显示过时的价格,甚至完全阻止访问。
- 数据中心封锁——大多数市场维护云服务提供商(AWS、Google Cloud、Hetzner)的IP地址数据库,并自动限制来自这些IP的请求。
封锁的结果可能有所不同:从临时限速(rate limit)到完全封锁IP几周。如果您通过卖家账户进行解析——您可能会面临个人账户被封锁的风险,这对业务至关重要。
真实案例:一位Wildberries的卖家通过普通的VPS服务器设置了竞争对手价格解析。在2小时内收集了500个产品的数据。一天后发现他的IP被完全封锁——甚至作为普通买家也无法访问网站。不得不等待2周,直到封锁自动解除。
哪些类型的代理适合价格监控:比较
监控动态定价适合三种类型的代理,每种都有其优缺点。选择取决于预算、解析量和地理要求。
| 代理类型 | 优点 | 缺点 | 适用任务 |
|---|---|---|---|
| 住宅代理 | 真实家庭用户的IP,最低的封锁风险,支持任何地理位置,绕过Cloudflare | 比其他类型更贵,速度可能有所不同 | 解析Wildberries、Ozon、具有严格保护的网站。监控区域价格。 |
| 移动代理 | 移动运营商的IP,一个IP被成千上万的用户使用——几乎不可能被封锁,高信任度 | 最贵,地理位置有限,运营商定期更换IP | 通过市场应用程序解析,绕过最严格的保护 |
| 数据中心代理 | 高速,低价,稳定连接,无限制流量 | 容易被检测,大多数市场会预防性地封锁数据中心 | 解析没有严重保护的网站,Avito,小型在线商店 |
选择的实用建议:
- 对于Wildberries和Ozon——仅使用住宅或移动代理。这些平台使用Cloudflare和自有反机器人系统,数据中心在90%的情况下会被封锁。
- 对于Yandex.Market——使用具有俄罗斯地理位置的住宅代理,系统会检查IP与搜索区域的匹配。
- 对于Avito——可以使用数据中心,但需要轮换和请求之间的延迟。保护比市场弱。
- 对于AliExpress和国际平台——使用所需国家的住宅代理,许多平台会根据不同地区显示不同的价格。
如果预算有限——从20-30个住宅代理的池开始轮换。这足以在不被封锁的情况下监控500-1000个产品每天。
Wildberries、Ozon、Yandex.Market和Avito的保护特点
每个平台使用其特定的保护机制组合。理解这些特点有助于您第一次正确设置解析器。
Wildberries
在俄罗斯市场中,保护最严格。使用Cloudflare并启用“我正在攻击”的模式,在访问内容之前检查JavaScript挑战。此外,还会监控:
- 浏览器指纹——canvas、WebGL、字体、屏幕分辨率
- TLS指纹——协议版本和密码套件集
- 行为因素——滚动速度、鼠标移动、页面停留时间
- 会话历史——如果您立即开始打开产品页面而不查看主页和类别,这看起来很可疑
有效的方法:使用带住宅代理的无头浏览器(Puppeteer、Playwright),模拟真实用户的行为,请求之间延迟5-15秒,每20-30个请求后轮换User-Agent和代理。
Ozon
使用自有反机器人系统和DataDome。特点是:价格可能因送货城市而异——系统根据IP确定区域并显示相应的价格,考虑到物流。
Ozon积极封锁已知的数据中心IP范围。在通过普通VPS解析时,您在80%的情况下会收到验证码或403错误。还会监控cookies——如果您在请求之间没有保存会话,这会被检测到。
有效的方法:使用具有俄罗斯地理位置的住宅代理,确保在请求之间保存cookies,模拟将产品添加到收藏夹(这会创建用户的“历史”),延迟3-10秒。
Yandex.Market
中等保护水平。主要特点是对区域的严格绑定。如果您使用来自海参崴的IP解析莫斯科的价格,系统要么会显示海参崴的价格,要么完全封锁访问。要进行正确的监控,需要来自您所跟踪的区域的代理。
Yandex还使用自有的反欺诈系统,分析行为序列。可疑的行为包括:通过直接链接打开产品页面而不进行搜索、请求之间的间隔相同(例如严格每5秒)、没有对静态内容(图片、样式)的请求。
有效的方法:使用所需区域的住宅代理,模拟完整的循环:搜索→产品列表→产品页面,随机延迟4-12秒,定期更换代理。
Avito
在列举的平台中,保护最宽松。主要保护是限制来自同一IP的广告查看次数(大约每小时100-150个广告)。超过限制后会显示验证码或1-2小时的临时封锁。
Avito还会检查cookies和基本请求头,但不使用复杂的JavaScript挑战。数据中心可以使用,但有一定限制——需要轮换和适度的请求频率。
有效的方法:即使是数据中心也要进行轮换,请求之间延迟2-5秒,确保请求头正确,保存cookies。对于大规模解析——使用住宅代理。
为全天候解析设置代理轮换
正确的代理轮换是稳定解析而不被封锁的关键因素。主要有三种轮换策略,每种适用于不同的场景。
策略1:按请求数量轮换
本质:在达到一定请求数量后更换代理(例如,每20-50个请求后)。这是大多数任务中最简单有效的方法。
不同平台的推荐值:
- Wildberries:每个代理15-25个请求,然后更换
- Ozon:20-30个请求
- Yandex.Market:30-50个请求
- Avito:50-100个请求
重要提示:添加随机化。不要严格在20个请求后更换代理——在18-23个请求后随机更换。这使得模式对保护系统的预测性降低。
策略2:时间轮换
每N分钟更换一次代理,而不考虑请求数量。适用于负载不可预测的任务——例如,实时价格监控,更新数量可能会急剧变化。
推荐间隔:对于严格的平台(Wildberries、Ozon)为5-15分钟,对于更宽松的平台(Avito、小型商店)为15-30分钟。
策略3:粘性会话
在同一“用户会话”中使用同一个代理进行所有请求。例如:您模拟一个用户,进入Ozon,搜索“笔记本电脑”,打开5个产品页面,添加一个到购物车。所有这些操作都通过一个代理进行,并保存cookies。
会话结束后(3-10分钟后)——更换代理并开始新的会话。这是最“人性化”的模式,但需要更多的代理并且实现起来更复杂。
何时使用:解析具有非常严格保护的平台,当简单的轮换不起作用时。也适用于通过卖家个人账户收集数据。
实用建议:
结合策略。例如:使用粘性会话进行20-30个请求,然后在会话结束后更换代理。添加时间限制——如果会话持续超过10分钟,强制更换代理。这种混合方法提供了最大的检测保护。
支持代理的价格监控现成工具
如果您不想从零开始编写解析器,有现成的解决方案内置支持代理。我们将讨论一些在俄罗斯和国际平台上最受欢迎的价格监控工具。
针对俄罗斯市场
1. Mpstats (mpstats.io)
专门用于Wildberries和Ozon分析的服务。收集销售、库存、竞争对手价格的数据。提供API以便与自有系统集成。服务通过自有的代理基础设施工作,您无需额外设置任何内容。
缺点:高昂的费用(每月15,000卢布起,享受完全访问权限),无法使用自己的代理。适合月营业额在1-2百万卢布的大型卖家。
2. Sellego
类似的服务,专注于定价自动化。跟踪竞争对手的价格,并根据设定的规则自动调整您的价格(例如,“比竞争对手便宜5%”)。同样通过自有代理工作。
3. Parsehub
无代码的可视化解析器构建工具。您点击页面上需要收集的元素,服务会自动创建解析器。支持代理——可以在项目设置中添加自己的列表。适合完全不会编程的人。
费用:免费套餐——每月200页,付费套餐——从$149/月起,提供10,000页的访问。监控100-200个产品,免费套餐就足够了。
自主开发
如果您准备自行设置解析器或团队中有程序员:
1. Scrapy (Python)
强大的解析框架,内置支持代理、轮换、错误处理。提供中间件以自动更换代理。需要了解Python,但文档非常优秀。
适合解析没有JavaScript的网站。对于Wildberries和Ozon,需要与Splash或Selenium结合使用以处理JavaScript。
2. Puppeteer / Playwright (JavaScript)
无头浏览器,完全模拟真实用户——执行JavaScript,保存cookies,可以模拟鼠标移动。非常适合具有严格保护的平台。
代理设置简单——启动浏览器时只需一个参数。Playwright被认为更现代和稳定,但Puppeteer有更多现成的示例和库。
3. Octoparse
Windows桌面应用程序,具有可视化解析器构建工具。不需要编程——您只需点击要收集的元素。内置支持代理,调度程序,导出到Excel/CSV。
费用:免费版本有限制(每月10,000条记录),付费套餐从$75/月起。对于小型和中型企业是个不错的选择。
15分钟内逐步设置带代理的价格解析器
我将展示最简单的设置价格监控的方法,以Parsehub为例——这是一种无代码的工具。即使您从未使用过解析器,这种方法也适用。
步骤1:注册和安装
- 在parsehub.com注册(有免费套餐)
- 下载并安装Windows或Mac的桌面应用程序
- 启动应用程序并登录账户
步骤2:创建项目和选择元素
- 点击“新项目”,并粘贴产品页面的URL(例如,Ozon的类别或搜索结果)
- Parsehub将在内置浏览器中加载页面
- 点击第一个产品的名称——Parsehub会自动突出显示页面上所有相似的元素
- 点击产品价格——它将添加到要收集的数据列表中
- 添加其他所需字段:产品链接、评分、评论数量
步骤3:设置代理
- 打开项目设置(齿轮图标)
- 找到“代理设置”部分
- 选择“使用代理”,并以格式插入您的代理数据:IP:PORT:USERNAME:PASSWORD
- 如果您有代理列表,请启用“轮换代理”选项——Parsehub将在请求之间自动更换代理
步骤4:设置调度
- 在项目设置中找到“调度”
- 选择启动频率:每小时、每6小时、每天一次等
- 对于动态定价,最佳设置是每2-4小时
步骤5:导出数据
- 在第一次启动解析器后,数据将出现在“数据”选项卡中
- 点击“导出”并选择格式:CSV、Excel、JSON
- 可以设置在每次启动后自动将数据发送到Google Sheets或通过电子邮件发送
整个设置过程大约需要10-15分钟。之后,解析器将根据调度自动运行,收集竞争对手的价格并将数据发送给您。
重要:通过Parsehub解析Wildberries和Ozon时,务必使用住宅代理。数据中心将被封锁,即使轮换也会如此。10-20个代理的池足以监控200-500个产品。
导致封锁的5个解析错误
即使使用正确的代理,如果犯了典型错误也可能会被封锁。以下是实践中最常见的问题。
错误1:请求速度过快
许多人希望尽快收集数据,每秒进行10-20个请求。这会立即被保护系统检测到。真实的人不可能每秒打开20个产品页面。
解决方案:在请求之间添加延迟。对于简单网站,至少2-3秒,对于有保护的市场,5-10秒。使延迟随机化——不要严格设定为5秒,而是随机在4到8秒之间。
错误2:对所有请求使用同一个代理
即使您购买了住宅代理,使用同一个IP进行数百个请求也会导致封锁。保护系统会监控每个IP的活动。
解决方案:至少使用10-20个代理的池进行轮换。对于大规模(每天1000个以上产品)——使用50-100个代理。
错误3:缺少或错误的请求头
没有User-Agent或使用库的默认User-Agent(例如,“Python-requests/2.28.1”)的请求会立即被检测为机器人。
解决方案:始终指定真实浏览器的User-Agent。此外,添加Accept、Accept-Language、Accept-Encoding请求头。在更换代理时更改User-Agent。
错误4:忽视cookies和会话
许多平台使用cookies来跟踪用户会话。如果您在每次请求时“从头开始”而没有cookies,这看起来很可疑。
解决方案:在同一会话中在请求之间保存cookies。在更换代理时——清除cookies并开始新的会话。使用自动管理cookies的库(Python中的requests.Session,JavaScript中的puppeteer)。
错误5:仅解析产品页面而不模拟导航
如果您直接打开产品页面的链接,而跳过主页、搜索和类别,这并不像真实用户的行为。
解决方案:对于具有严格保护的平台(Wildberries、Ozon),模拟用户的完整路径:主页→搜索或类别→产品列表→产品页面。这会增加解析时间,但大大降低被封锁的风险。
结论
监控动态定价是任何市场卖家至关重要的任务。竞争对手的价格每天会变化几次,谁最先对变化做出反应,谁就能在搜索结果中保持位置并获得利润。但所有大型平台都严格封锁解析,因此没有正确设置的代理,数据是无法收集的。
本文的关键结论:对于Wildberries和Ozon,仅使用住宅或移动代理——数据中心在90%的情况下会被封锁。务必设置代理轮换——在每20-30个请求后更换IP。在请求之间添加延迟(5-10秒)并随机化它们。对于具有JavaScript保护的平台,使用无头浏览器。模拟真实用户的行为——不要直接打开产品页面,而是通过搜索和类别模拟完整路径。
如果您不想处理技术细节,使用像Parsehub或Octoparse这样的现成工具——它们不需要编程,并内置支持代理。对于大规模和特定任务,最好在Scrapy或Puppeteer上开发自己的解析器。
如果您计划在俄罗斯市场上设置自动价格监控,建议从住宅代理开始——它们提供稳定的访问Wildberries、Ozon和其他平台,风险最低。对于特别复杂的情况或使用市场的移动应用程序,适合使用移动代理,其IP来自俄罗斯运营商。