返回博客

AliExpress爬虫代理:如何在不被封锁的情况下收集商品数据

我们讨论如何通过代理设置安全的AliExpress目录解析:使用哪些类型的IP,如何避免封锁以及如何自动化商品和价格的数据收集。

📅2026年1月23日
```html

AliExpress积极抵制自动数据收集——解析器会遇到验证码、IP的临时禁令和授权要求。如果您在监控竞争对手的价格、寻找适合代发货的热门商品或收集市场平台的数据库,没有正确设置的代理,工作就变成了与阻止的持续斗争。

在本指南中,我们将讨论如何选择用于解析AliExpress的代理,设置IP地址的轮换,绕过反机器人系统,并在不被封禁的风险下自动收集产品、价格和评论数据。

为什么AliExpress阻止解析以及它是如何工作的

AliExpress使用多层保护系统来防止自动数据收集。当竞争对手大量复制目录时,平台会损失资金,服务器会因机器人而过载。因此,保护措施不断完善并变得更加激进。

检测解析器的主要方法:

  • 来自一个IP的请求频率——如果一分钟内来自一个地址的请求超过50个,系统会自动显示验证码或临时封禁该IP 30-60分钟
  • 行为分析——机器人打开页面的速度太快(0.5-1秒),不移动鼠标,不滚动,不点击界面元素
  • 缺少cookies——正常用户在访问网站时会积累cookies,而解析器通常使用干净的会话
  • 可疑的User-Agent——旧版浏览器、服务器库(Python-requests、curl)、统计中缺少移动设备
  • 浏览器指纹——AliExpress收集指纹:屏幕分辨率、时区、已安装的字体、WebGL、Canvas。来自不同IP的相同指纹是机器人的标志

当系统检测到可疑活动时,会应用分级封禁:首先显示验证码,然后对IP进行1-2小时的临时封禁,若重复违规——封禁一天或永久封禁。

重要:AliExpress使用Cloudflare和自己的反机器人系统。他们不仅分析IP,还分析TLS指纹(协议版本、加密顺序)——即使使用代理,如果使用过时的HTTP客户端也可能被封禁。

哪些类型的代理适合解析AliExpress

选择代理类型取决于解析的规模、预算和数据质量要求。我们将讨论每种类型及其实际使用场景。

代理类型 速度 被封禁的风险 何时使用
数据中心代理 高(50-150毫秒) 快速解析公共数据,频繁更换IP
住宅代理 中等(200-500毫秒) 长期解析,带有授权的数据收集
移动代理 中等(300-700毫秒) 非常低 从移动版本解析,绕过严格的封禁

用于快速解析的数据中心代理

当需要快速收集大量数据时适用:10000+种商品的价格、类别特征、卖家列表。响应速度50-150毫秒允许每秒从一个IP发出5-10个请求。

使用场景:您在Shopify上有一个代发货商店,需要每天更新5000种来自AliExpress的商品价格。购买50-100个数据中心的IP池,每10-15个请求更换一次IP。在2-3小时内收集所有数据,代理费用为每月50-100美元。

缺点:AliExpress知道数据中心的IP范围,并对此持怀疑态度。需要激进的轮换(每5-10个请求更换IP)和模拟行为(请求之间随机延迟2-5秒)。

用于稳定解析的住宅代理

住宅代理拥有真实家庭用户的IP——提供商将其分配给个人。AliExpress无法区分通过这种代理的请求和普通买家的请求。这将风险降低5-10倍,相比于数据中心的代理。

使用场景:您正在监控自己在Ozon商店的竞争对手价格。需要每天检查200-300种商品,比较AliExpress和俄罗斯供应商的价格。使用10-20个住宅IP,每50-100个请求更换一次。解析需要30-40分钟,几个月没有封禁。

优点:可以在同一个IP上工作更长时间(100-200个请求而不是10-20个),验证码更少,能够进行授权并与卖家的个人账户进行交互。

用于绕过严格封禁的移动代理

移动IP(3G/4G/5G运营商)具有最高的信任度——AliExpress无法封禁整个移动运营商的子网,这将封禁数百万真实买家。一个移动IP可以被数百个设备使用(NAT),因此即使是激进的解析也看起来像是不同用户的活动。

使用场景:您已经在某个地区因住宅IP被封禁,需要紧急收集数据以向客户报告。您购买2-3个移动代理,通过移动版网站(m.aliexpress.com)进行解析。即使是激进的解析(每秒1个请求)也没有封禁。

缺点:比住宅代理贵2-3倍,速度较慢(300-700毫秒延迟),在重新连接运营商时IP可能会更改。

IP轮换设置:更换频率和超时

正确的IP轮换是长期解析而不被封禁的关键。过于频繁的更换看起来可疑并浪费代理,过于稀疏则会导致封禁。

按代理类型推荐的轮换频率

代理类型 每个IP的请求数 请求之间的延迟 会话的生命周期
数据中心 5-15个请求 2-5秒 1-3分钟
住宅 50-150个请求 3-8秒 10-30分钟
移动 100-300个请求 1-3秒 30-60分钟

不同任务的轮换策略

1. 快速解析目录(10000+商品每小时)

  • 使用100-200个数据中心的IP池
  • 每5-10个请求更换一次
  • 并行流:10-20个来自不同IP的同时请求
  • 请求之间的延迟:1-2秒(模拟快速用户)
  • 如果在IP上遇到验证码——将其从池中排除2-3小时

2. 每日价格监控(500-1000商品)

  • 使用10-20个住宅IP
  • 每50-100个请求更换一次
  • 请求之间的延迟为3-5秒
  • 在同一个IP上保持cookies
  • 模拟行为:偶尔打开主页、类别

3. 带有授权的解析(卖家的个人账户)

  • 每个账户一个住宅或移动IP
  • 在会话期间不更换(30-60分钟)
  • 请求之间的延迟为5-10秒
  • 完全模拟浏览器:保存cookies、localStorage、指纹

建议:在延迟中添加随机性。使用2-5秒的范围而不是固定的3秒。这使得请求模式对反机器人系统的预测性降低。

绕过反机器人系统:User-Agent、cookies和指纹

更换IP仅解决了部分问题。AliExpress分析请求和行为的多个参数,以区分机器人和人类。我们将讨论除了代理之外还需要设置的内容。

User-Agent和HTTP头

User-Agent告知服务器哪个浏览器和操作系统正在发出请求。解析器通常使用库的默认值(Python-requests/2.28.0),这些值很容易被识别。

正确设置User-Agent:

  • 使用流行浏览器的最新版本:Chrome 120+、Firefox 121+、Safari 17+
  • 在轮换IP时更改User-Agent——一个IP不应显示不同的浏览器
  • 以40-50%的比例添加移动User-Agent(AliExpress的一半流量来自移动设备)
  • 从真实浏览器中复制完整的头部:Accept、Accept-Language、Accept-Encoding、Connection、Upgrade-Insecure-Requests

桌面浏览器的正确头部示例:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1

移动设备的示例:

User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br

处理cookies和会话

AliExpress在首次访问时会设置cookies:会话ID、语言和货币设置、跟踪令牌。没有cookies的解析器看起来可疑——正常用户在浏览网站时会积累它们。

正确处理cookies:

  • 在解析之前打开主页并保存所有cookies
  • 在同一个IP的所有后续请求中使用这些cookies
  • 更换IP时——开始新的会话并使用新的cookies
  • 在解析器的不同运行之间保存cookies——这模拟了返回用户
  • 每1-2小时更新cookies(重新打开主页)

浏览器指纹和TLS指纹

现代反机器人系统收集浏览器的数字指纹——由几十个参数组合而成,唯一地识别设备。即使来自不同IP,相同的指纹也会显示为机器人。

浏览器指纹包含什么:

  • 屏幕分辨率和颜色深度
  • 时区和系统语言
  • 已安装字体的列表
  • WebGL和Canvas指纹(独特的图形渲染方式)
  • 音频上下文(AudioContext指纹)
  • 浏览器插件的列表
  • 对WebRTC、Battery API和其他现代API的支持

简单的HTTP库(requests、axios、curl)没有这些参数——它们在协议层工作,没有渲染。对于严肃的解析,需要使用完整浏览器的工具。

浏览器仿真解决方案:

  • Selenium + undetected-chromedriver——启动真实的Chrome并进行修改以绕过检测
  • Puppeteer + puppeteer-extra-plugin-stealth——带有插件的Node.js库,用于掩盖自动化的迹象
  • Playwright——现代的Selenium替代品,性能更好
  • 反检测浏览器——Dolphin Anty、AdsPower、Multilogin(通过界面工作)

重要:TLS指纹(SSL连接的指纹)也会被分析。旧版本的Python和Node.js使用过时的加密套件,这会显示为机器人。使用最新版本的库或curl_cffi来模拟现代浏览器。

解析AliExpress的现成工具

从零开始编写解析器仅对特定任务有意义。对于标准数据收集(商品、价格、评论),有现成的解决方案可以节省数周的开发时间。

带API的商业服务

1. ScraperAPI (scrape.do, scrapingbee.com)

云服务,负责所有与代理和绕过保护相关的工作。您向他们发送AliExpress商品的URL,他们返回包含数据的HTML或JSON。

  • 优点:不需要自己的代理,自动绕过验证码,现成的解析器适用于流行网站
  • 缺点:在大规模时成本高(每10万个请求起价50美元),依赖第三方服务
  • 何时使用:一次性任务、原型设计、小规模(每月不超过1万个商品)

2. Bright Data (luminati.io)

最大的代理提供商,提供自己的解析工具。不仅提供代理,还提供与AliExpress相关的现成数据集(更新的商品数据库)。

  • 优点:庞大的IP池(7200万+住宅IP),为企业客户提供基础设施
  • 缺点:非常昂贵(每月起价500美元),复杂的计费
  • 何时使用:大型企业有预算,持续解析大量数据

开源解决方案

1. Scrapy + scrapy-rotating-proxies

流行的Python解析框架。支持异步请求、自动代理轮换、导出为CSV/JSON/数据库。

在Scrapy中设置代理的示例:

# settings.py
ROTATING_PROXY_LIST = [
    'http://user:pass@proxy1.example.com:8000',
    'http://user:pass@proxy2.example.com:8000',
    'http://user:pass@proxy3.example.com:8000',
]

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.retry.RetryMiddleware': 90,
    'scrapy_rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'scrapy_rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# 绕过封禁的设置
ROTATING_PROXY_PAGE_RETRY_TIMES = 5
ROTATING_PROXY_BACKOFF_BASE = 300  # 代理封禁时间(秒)

2. Puppeteer + puppeteer-extra-plugin-stealth

对于具有激进保护的网站(如AliExpress),需要完整的浏览器。Puppeteer通过DevTools协议控制Chrome,stealth插件掩盖自动化的迹象。

// parser.js
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({
    args: [
      '--proxy-server=http://proxy.example.com:8000',
      '--no-sandbox',
      '--disable-setuid-sandbox'
    ]
  });

  const page = await browser.newPage();
  
  // 代理授权
  await page.authenticate({
    username: 'user',
    password: 'pass'
  });

  // 设置真实的视口
  await page.setViewport({
    width: 1920,
    height: 1080,
    deviceScaleFactor: 1
  });

  // 解析商品
  await page.goto('https://www.aliexpress.com/item/1234567890.html', {
    waitUntil: 'networkidle2'
  });

  const productData = await page.evaluate(() => {
    return {
      title: document.querySelector('.product-title-text')?.innerText,
      price: document.querySelector('.product-price-value')?.innerText,
      rating: document.querySelector('.overview-rating-average')?.innerText
    };
  });

  console.log(productData);
  await browser.close();
})();

非技术用户的桌面应用程序

1. Octoparse

无需编码的可视化解析器——您点击页面元素,程序记住结构并收集数据。内置代理支持和任务调度器。

  • 优点:无需编程,适用于动态内容,云版本用于后台工作
  • 缺点:免费版有限制(每月10K行),有时无法应对复杂的保护
  • 价格:Standard计划每月75美元起

2. ParseHub

类似于Octoparse,界面更简单。由于内置模板适用于流行网站,因此在解析AliExpress时表现良好。

  • 优点:免费套餐支持200个页面,简单的代理设置
  • 缺点:免费版工作缓慢,缺乏高级功能(API、webhooks)

地理定位:如何解析不同国家的价格

AliExpress根据用户所在国家显示不同的价格、产品和运输条件。如果您从事国际代发货或比较不同市场的价格,则需要来自特定地区的代理。

AliExpress如何确定用户国家

平台使用多个数据源:

  • IP地址——主要方式,通过IP的地理位置确定国家
  • Cookies——在aep_usuc_f中保存所选国家(可以替换)
  • Accept-Language头——浏览器语言,但不是决定性因素
  • URL中的货币——参数?currency=USD或子域名(ru.aliexpress.com)

为了可靠地解析特定国家的价格,必须使用来自该地区的代理。仅替换cookies并不总是有效——AliExpress优先考虑IP地理位置。

解析的热门地区及其特点

国家 价格特点 解析目的
美国 以美元计价,通常低于欧洲 在美国进行代发货,与亚马逊比较
俄罗斯 以卢布计价,考虑关税和增值税 与Wildberries、Ozon比较
德国 以欧元计价,快速从欧盟仓库发货 在欧洲进行代发货,eBay.de
巴西 由于关税价格较高,但需求很大 本地电子商务(Mercado Livre)

通过代理设置地理定位

大多数住宅和移动代理提供商允许通过连接参数或API选择国家(甚至城市)。

通过代理的用户名选择国家的示例:

# 格式:username-country-国家代码
proxy_us = "http://username-country-us:password@gate.example.com:8000"
proxy_de = "http://username-country-de:password@gate.example.com:8000"
proxy_br = "http://username-country-br:password@gate.example.com:8000"

# 解析美国的价格
response_us = requests.get(
    "https://www.aliexpress.com/item/1234567890.html",
    proxies={"http": proxy_us, "https": proxy_us}
)

# 解析德国的价格
response_de = requests.get(
    "https://www.aliexpress.com/item/1234567890.html",
    proxies={"http": proxy_de, "https": proxy_de}
)

另外根据地区设置头部:

  • Accept-Language: en-US用于美国,de-DE用于德国,pt-BR用于巴西
  • 使用相应的子域名:ru.aliexpress.com用于俄罗斯,de.aliexpress.com用于德国
  • 检查响应中的货币——如果看到的不是正确的货币,则地理定位未生效

解析中的常见错误及如何避免

即使使用正确的代理和设置,也可能因解析逻辑中的错误而导致封禁。我们将讨论常见问题和解决方案。

错误1:解析过于激进

问题:解析器每分钟从一个IP发出100个请求,试图更快地收集数据。AliExpress将其检测为DDoS攻击并封禁该IP。

解决方案:添加延迟和请求数量限制。对于住宅代理,安全的速度是每个IP每分钟10-20个请求(每3-6秒1个请求)。解析时间更长总比失去代理要好。

错误2:忽视验证码和错误

问题:解析器收到带有验证码的页面,但继续将其解析为普通内容。结果——数据库中有成千上万的空记录。

解决方案:在解析之前检查服务器的响应。如果HTML中包含“captcha”、“Access Denied”或响应代码403/429——停止使用该IP 1-2小时。

def is_blocked(html):
    blocked_keywords = ['captcha', 'access denied', 'too many requests']
    return any(keyword in html.lower() for keyword in blocked_keywords)

response = requests.get(url, proxies=proxy)
if is_blocked(response.text):
    print(f"Proxy {proxy} is blocked, switching...")
    # 将代理排除在池外2小时
    blocked_proxies[proxy] = time.time() + 7200
    continue

错误3:解析过时数据

问题:AliExpress通过CDN(Cloudflare)缓存页面。解析器获取的数据是2-3小时前的,而不是最新的价格。

解决方案:在URL中添加随机参数以绕过缓存,或使用Cache-Control: no-cache头。

import random
import time

# 在URL中添加时间戳以绕过缓存
url = f"https://www.aliexpress.com/item/1234567890.html?_t={int(time.time())}"

# 或者使用头部
headers = {
    'Cache-Control': 'no-cache',
    'Pragma': 'no-cache'
}

错误4:未正确处理动态内容

问题:AliExpress上的商品价格和特征通过JavaScript在页面加载后加载。简单的HTTP请求会得到一个没有数据的空HTML模板。

解决方案:使用无头浏览器(Selenium、Puppeteer、Playwright),它可以执行JavaScript并等待内容完全加载。或者找到返回JSON数据的API端点——通常可以通过DevTools在网络中找到。

错误5:缺乏日志记录和监控

问题:解析器运行了一周,收集数据,但没有人检查质量。结果发现30%的记录由于网站结构的变化而为空。

解决方案:记录所有重要事件——成功请求、错误、代理封禁、数据结构变化。当错误数量超过10%时设置警报。

启动解析器前的检查清单:
✅ 请求之间的延迟已设置(住宅代理为3-8秒)
✅ IP轮换正常(每个IP不超过50-100个请求)
✅ User-Agent是最新的,并与IP一起更改
✅ Cookies被保存并重复使用
✅ 有验证码和封禁检查
✅ 日志记录和监控已设置
✅ 100个商品的测试运行成功

结论

解析AliExpress需要综合的方法:正确的代理只是解决方案的一部分。需要合理的IP轮换、模拟真实浏览器、处理cookies和指纹,以及持续监控数据质量。过于激进的解析即使使用昂贵的代理也会导致封禁,而正确的设置则可以在几个月内无问题地收集数据。

对于大多数任务(监控竞争对手价格、收集代发货目录、分析趋势),最佳选择是住宅代理,每50-100个请求更换一次。它们在工作速度和AliExpress的信任度之间提供了良好的平衡。如果预算有限且需要高速度——可以从数据中心代理开始,但要准备好更频繁的封禁和需要激进的轮换。

请记住:代理的质量比数量更重要。10个高质量的住宅IP,经过正确设置,将比100个便宜的数据中心代理获得更好的结果,后者的封禁率较高。投资时间设置浏览器仿真、日志记录和监控——这将带来稳定的解析器工作,避免不断出现验证码和封禁问题。

```