如何使用免费代理爬取亚马逊或 eBay 数据

如何使用免费代理爬取亚马逊或 eBay 数据

选择你的武器库:野外免费代理

在数字集市中,代理如同转瞬即逝的哨兵——通往匿名、自由,以及——唉——脆弱的大门。自由的代理,这种难以捉摸的存在,提供了通道,但代价是:不稳定、限制,或者在最糟糕的情况下,背叛。让我们以笛卡尔式的清晰来审视这幅景象:

代理类型 匿名 速度 可靠性 示例来源
HTTP/HTTPS 代理 中等的 缓和 低的 https://free-proxy-list.net/
SOCKS4/5 代理 高的 低的 非常低 https://socks-proxy.net/
透明代理 没有任何 快速地 低的 https://spys.one/

警告: 免费代理是公开的,可能会被盗用。切勿通过它们发送凭证或敏感数据。

收获代理人:仪式

与短暂的事物共舞,需要自动化。让我们召唤 Python 及其追随者, 请求BeautifulSoup,获取代理:

从 bs4 导入请求 导入 BeautifulSoup def fetch_proxies(): url = 'https://free-proxy-list.net/' soup = BeautifulSoup(requests.get(url).content, 'html.parser') proxies = [] for row in soup.find('table', id='proxylisttable').tbody.find_all('tr'): tds = row.find_all('td') if tds[6].text == 'yes': # HTTPS only proxy = f"{tds[0].text}:{tds[1].text}" proxies.append(proxy) return proxies

轮换中的代理:伪装的艺术

亚马逊和 eBay 这些数字堡垒,挥舞着机械般精准的封杀之锤。解决方案是什么?轮换代理、更改用户代理、注入延迟——这简直就是一场误导性的编排。

导入随机导入时间代理 = fetch_proxies() user_agents = [# 一组用户代理'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...',# 添加更多] def get_random_headers():返回{'User-Agent':random.choice(user_agents)} def get_random_proxy():返回{'http':f"http://{random.choice(proxies)}",'https':f"http://{random.choice(proxies)}"} def request_with_proxy(url): for attempt in range(5): proxy = get_random_proxy() headers = get_random_headers() try: respond = request.get(url, headers=headers, proxies=proxy, timeout=5) 如果response.status_code == 200: 返回response.text 除异常外:继续time.sleep(random.uniform(1, 3)) 返回无

爬取亚马逊数据:穿越迷宫

亚马逊编织了反机器人咒语:验证码、动态内容、IP 禁令。对于小规模抓取,请专注于产品列表;对于其他情况,请考虑道德界限和法律界限。

示例:提取产品标题

从 bs4 导入 BeautifulSoup def scrape_amazon_product_title(asin): url = f"https://www.amazon.com/dp/{asin}" html = request_with_proxy(url) if not html: print("无法检索页面。") return None soup = BeautifulSoup(html, 'html.parser') title = soup.find('span', id='productTitle') return title.text.strip() if title else None asin = 'B08N5WRWNW' # 示例 ASIN print(scrape_amazon_product_title(asin))

抓取 eBay:通过集市

eBay 的警惕性较低,仍然采用速率限制和机器人检测——虽然不那么严重,但仍然存在。重点关注商品页面(例如 https://www.ebay.com/itm/ITEMID)。

示例:提取商品价格

def scrape_ebay_price(item_id): url = f"https://www.ebay.com/itm/{item_id}" html = request_with_proxy(url) if not html: print("无法检索页面。") return None soup = BeautifulSoup(html, 'html.parser') price = soup.find('span', id='prcIsum') return price.text.strip() if price else None item_id = '234567890123' # 示例商品 ID print(scrape_ebay_price(item_id))

混淆:逃避的诗歌

  • 随机化请求间隔:
    Python
    时间.睡眠(随机.均匀(2,6))
  • 随机代理和用户代理 每次请求。
  • 暂停或切换代理 在 HTTP 503、403 或 CAPTCHA 检测上。

限制和合法性:

地点 每小时最大请求数(估计) 关键对策
亚马逊 ~50-100 验证码、IP 禁令、JS 检查
易趣 ~200-300 限速、验证码

最佳实践:

  • 使用前测试代理的活性(许多代理在数小时内就会死亡)。
  • 尊重 robots.txt——不要擅自闯入禁止的地方。
  • 限制并发性(使用免费代理避免线程风暴)。
  • 优雅地解析——站点布局像春天的灌木丛一样变化。

工具和库:

任务 推荐工具
代理抓取 BeautifulSoup
HTTP 请求 请求,httpx
解析 BeautifulSoup,lxml
代理轮换 请求+自定义

代理验证例程示例:

def validate_proxy(proxy):尝试:r = 请求。获取('https://httpbin.org/ip',proxies={'http':proxy,'https':proxy},timeout=3)返回 r.status_code == 200 除外:返回 False proxies = [p for p in proxies if validate_proxy(p)]

关于持久性的最后说明:

使用免费代理爬取数据,就像追逐地平线——它永远变化,却又遥不可及。不断调整,不断调整,永远不要忘记,每个请求都只是数字商务海洋中的一滴水。网络是一个活生生的东西;好好对待它,或许它终将揭示它的秘密。

泰奥菲尔·博韦

泰奥菲尔·博韦

代理分析师

21 岁的 Théophile Beauvais 是 ProxyMist 的代理分析师,他专门负责整理和更新来自世界各地的代理服务器综合列表。凭借与生俱来的技术和网络安全天赋,Théophile 已成为团队中不可或缺的一员,确保向全球用户免费提供可靠的 SOCKS、HTTP、精英和匿名代理服务器。Théophile 在风景如画的里昂市出生和长大,从小就对数字隐私和创新充满热情。

评论 (0)

这里还没有评论,你可以成为第一个评论者!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注