登录 注册
E-commerce

为盯着整个市场的电商团队准备的代理:价格、库存与竞品

网上零售靠的是别人的数据:竞争对手的库存、价格,以及各国买家看到的商品页。电商平台比其他网站更严厉地封锁列表地址,所以主要抓取通过Resi Core进行,使用正确国家的家庭IP;不限流量套餐则负责较简单的商店和大流量。

  • Resi Core:2M+ IP,200+国家
  • 每次请求换新IP
  • 不计量的大流量套餐
笔记本电脑上打开着网店目录,桌上放着一个包裹
E-commerce

电商团队需要什么,套餐给了什么

电商平台是网上防护最严的网站。代理池必须够大、够本地、够新。

任务需要什么套餐提供什么

看到本地买家看到的商品页

Resi Core:市场所在国家的家庭IP;Resi Prime还可加上城市和配送日期

在数千个 SKU 上检查库存和价格

Resi不限线程,套餐最多2500

扛得过平台封禁的地址

Resi Core代理池有2M+地址,每次请求换新IP

带图片和评价的完整页面

不限流量套餐不计流量;用Resi时关闭图片,只为HTML付费

住宅代理

计算您电商平台的流量

在采集器中关闭图片和脚本,GB就只花在商品页HTML上。每GB价格随订单增大而降低。

按订单大小的住宅代理每GB价格
订单大小Resi CoreResi Prime
1GB+$0.85$2.29
10GB+$0.79$2.09
50GB+$0.72$1.95
100GB+省24%$0.65$1.75
500GB+$0.57$1.55
1000GB+$0.49$1.39

价格为每1GB的美元价格。按整GB购买,最少1GB。

代理池

  • 200+国家的2M+家庭IP
  • 每次请求换新地址,或在设备可用期间每个会话用同一个
  • 用自己的邮箱收发信:465和587发信,IMAP 993和POP3 995收信,25端口关闭
  • 一次最多1000行,列表每N分钟自动刷新
总计
$65.00
每1GB
$0.65
阶梯
100–499 GB

相比1GB起的价格,您节省24%($20.00)

再加400GB,每GB就降到$0.57

购买此数量

购买的GB自购买之日起3个月内可用;之后剩余的部分会被清零。

了解住宅代理

三步看到实时市场

按平台和国家拆分

每个市场一份列表:保留该国的 CSV 行,给每个采集器一个独立的 ip:port 文件。

安排检查计划

库存每小时一次,价格每天两次,商品页每天一次。每个请求都用列表里的下一个地址。

保存买家看到的内容

每条记录都保存价格、有货标记、送达日期和 IP 所在国家:以后差异就靠国家来解释。

现成监控脚本:价格和库存随时间累积

填好 products.txt 并设置 COUNTRY;每个商品都通过本地代理读取,提取价格和有货标记后追加到 stock.csv,逐步形成可画图的历史。请按平台调整 PRICE_RE 和 INSTOCK_RE。

CSV export link from your dashboard
marketplace country
one product URL per line
group 1 = price
matches when in stock
url;price;in_stock;proxy is written here
数值来自表单;复制或下载生成好的文件。
显示脚本代码
Python 3.8+ · ecommerce.py
#!/usr/bin/env python3
"""Marketplace stock and price watcher for Advanced.name proxies.

For each product URL it fetches the page through a proxy from the target country
and pulls both the price and an in-stock flag, writing a CSV you can chart over
time. Standard library only. Edit CONFIG and run: python3 stock.py
"""

# ================================ CONFIG ====================================
CSV_URL = "https://get.advanced.name/YOUR_LIST_ID.csv"  # CSV export link from your dashboard
COUNTRY = "IT"          # marketplace country
MIN_SPEED = 3
PRODUCTS_FILE = "products.txt"           # one product URL per line
PRICE_RE = r'"price"\s*:\s*"?([0-9][0-9.,]*)'          # group 1 = price
INSTOCK_RE = r'"availability"\s*:\s*"[^"]*InStock'     # matches when in stock
OUT_FILE = "stock.csv"                    # url;price;in_stock;proxy is written here
THREADS = 40
TIMEOUT = 20
RETRIES = 3
# ============================================================================

import csv
import io
import itertools
import re
import sys
import threading
import time
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed

COL_IP, COL_PORT, COL_COUNTRY, COL_SPEED = 0, 1, 2, 3
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"
PRICE = re.compile(PRICE_RE)
INSTOCK = re.compile(INSTOCK_RE)


def load_proxies():
    raw = urllib.request.urlopen(CSV_URL, timeout=30).read().decode("utf-8", "replace")
    pool = []
    for row in csv.reader(io.StringIO(raw), delimiter=";"):
        if len(row) <= COL_SPEED or not row[COL_PORT].strip().isdigit():
            continue
        if COUNTRY and row[COL_COUNTRY].strip().upper() != COUNTRY.upper():
            continue
        if int(row[COL_SPEED] or 0) < MIN_SPEED:
            continue
        pool.append(row[COL_IP].strip() + ":" + row[COL_PORT].strip())
    return pool


def main():
    proxies = load_proxies()
    if not proxies:
        sys.exit("No proxies for COUNTRY=%r." % COUNTRY)
    with open(PRODUCTS_FILE, encoding="utf-8") as fh:
        products = [line.strip() for line in fh if line.strip() and not line.startswith("#")]
    print("proxies: %d (%s), products: %d" % (len(proxies), COUNTRY, len(products)))

    rotation = itertools.cycle(proxies)
    lock = threading.Lock()

    def watch(url):
        for _ in range(RETRIES):
            with lock:
                proxy = next(rotation)
            handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
            req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept-Language": COUNTRY.lower()})
            try:
                html = urllib.request.build_opener(handler).open(req, timeout=TIMEOUT).read().decode("utf-8", "replace")
            except Exception:
                continue
            price = PRICE.search(html)
            return (price.group(1) if price else ""), ("yes" if INSTOCK.search(html) else "no"), proxy
        return "", "unreachable", ""

    rows = []
    with ThreadPoolExecutor(max_workers=THREADS) as pool:
        futures = {pool.submit(watch, u): u for u in products}
        for fut in as_completed(futures):
            url = futures[fut]
            price, stock, proxy = fut.result()
            rows.append((time.strftime("%Y-%m-%d %H:%M"), url, price, stock, proxy))
            print("%-4s %-9s %s" % (stock, price, url[:56]))

    header = not _exists(OUT_FILE)
    with open(OUT_FILE, "a", encoding="utf-8", newline="") as out:
        writer = csv.writer(out, delimiter=";")
        if header:
            writer.writerow(["checked_at", "url", "price", "in_stock", "proxy"])
        writer.writerows(rows)
    print("appended %d rows to %s" % (len(rows), OUT_FILE))


def _exists(path):
    try:
        open(path).close()
        return True
    except OSError:
        return False


if __name__ == "__main__":
    main()
配置

搭建电商平台监控

每个市场一份列表

从 CSV 导出中为每个平台所在国家单独生成 ip:port 列表,给每个采集器一个独立文件。用地区 IP 时一并发送平台的国家 Cookie;有些网站先从 Cookie 读取地区,再看地址。

库存从商品页或购物车取,不要用会被缓存的搜索结果;出现 403 时按平台放慢,而不是全局放慢。

计划与存储

用 cron 运行上面的监控脚本,并追加到同一个 CSV 中,逐步形成可画图的历史。每条记录都写上 IP 所在国家;之后价格和配送的差异就靠它来解释。

用Socks List Processor 保持代理池新鲜,跑完整目录前先用免费代理列表试一下采集器。

实际效果

从商品页到家门口

监控电商平台的四条规则

  1. 用地区 IP 时一并发送该平台自己的国家 Cookie;有些网站先把地区存在 Cookie 里。
  2. 按平台放慢,而不是全局放慢:某个网站连续返回 403,只说明那个网站需要暂停。
  3. 库存从商品页或购物车里取,不要从会被缓存的搜索结果里取。
  4. 每 10 分钟刷新列表,每条记录都写上 IP 所在国家。

适合此任务的按GB计费套餐

按国家查看此任务

显示全部国家
FAQ

关于本任务的问题

Amazon.de之类的网站用什么代理?
在连接字符串中设置国家DE的Resi Core:每次请求换一个新的家庭IP。需要多个欧盟国家时,在用户名里修改国家代码;较简单的商店用欧洲#9套餐更便宜。
能监控中国供应商吗?
能,用中国代理池(13 号套餐)。页面会以本地买家的视角打开。
代理扛得住电商平台的大页面吗?
可以。不限流量套餐不计流量,所以完整页面和无头浏览器都没问题。在Resi Core上,重页面很耗GB:请关闭图片,超时设为15到20秒。
有免费试用吗?
任何不限流量套餐都可满线程试用一小时,无需银行卡。Resi Core可以买1GB试用:在真实的电商平台上运行采集器,看看错误率。
电商平台用套餐还是Resi?
大型电商平台会封锁列表中的地址,所以主要抓取请走Resi Core。Resi Prime用于卖家账号和城市价格,套餐适合较简单的商店和大流量。
适合此任务的套餐

电商团队该选什么

大型电商平台用Resi Core抓取,卖家账号和城市价格放在Resi Prime上,较简单的商店用不限流量套餐采集更便宜。

Resi Core

电商平台抓取最佳选择

2M+ IP · 200+国家 · 不限线程

每次请求都用市场所在国家的家庭IP,一个地址被封也不会让抓取停下来。购买的GB可在三个月内用完。

低至 $0.49 每GB1GB仅需$0.85

Resi Prime

卖家账号和城市

30M+ IP · 220个国家 · 不限线程

卖家账号可在一个家庭IP上保持长达24小时。字符串中的城市和运营商能显示该城市买家看到的价格和配送日期。

低至 $1.39 每GB1GB仅需$2.29

不限流量代理

简单商店和大流量

#9套餐 · 欧洲 · 5000 IP · 2000 线程

流量不计量,带图片的完整商品页也不会增加费用。适合不封锁列表地址的商店。

$397 每月或每小时$2.20

从明天起监控整个电商平台

电商平台选Resi Core,用1GB测试采集器,然后在您销售的每个市场运行追踪。

价格 免费试用1小时