关于亚马逊爬虫返回503错误的问题

问题描述:

1.破解了亚马逊的验证码验证后,爬了一天就报了503的错误,一开始只是等一段时间就能爬了,后来等待的时间越来越长。

2.但是用浏览器直接打开amzon.com是可以打开的。

3.我用了快代理,使用快代理后用requests请求http://www.baidu.com/s?wd=ip页面然后保存,打开本地页面,ip地址还是我自己的,客服说是缓存问题,我清了缓存后还是一样。客服后来给了我这个网页https://dev.kdlapi.com/testproxy,打开ip是代理ip了。

4.但是我用了代理ip,继续爬,一样是不可以的,我感觉代理ip并没有生效。

5.我在家用同样的代码,是可以爬的。

请问,a .快代理那个ip代理是不是有问题。

           b. 我在公司无论是用公司ip还是用代理ip都是不可以爬的,但是在家就可以,这是为什么?

          

 

我想问下,你在家里用代理时可以正常抓取吗

我用阿布云也是遇到503响应码,用浏览器开代理访问同样的URL又没问题,不知道为啥

亚马逊在反爬虫方面,常用的反爬手段基本都用了,譬如Cookie跟踪,IP跟踪,访问频率限制,访问轨迹跟踪,CSS 混淆等等。

使用浏览器自动化工具如 selenium, playwright, puppeteer 等采集亚马逊数据,也会被检测出来。像 puppeteer-extra, apify/crawlee 这样的工具,提供了 WebDriver 隐身特性,因此一定程度上缓解了这个问题,但仍然没有完全解决这个问题。

  1. 上述工具没有解决访问轨迹跟踪问题
  2. Headless 模式已经能够被检测出来了。如果爬虫运行在云端,为了提高性能,通常是不装 GUI 的,但即使是做了 WebDriver 隐身, headless 模式也已经能够被检测出来了

即使解决完上述问题,在大规模采集下,仍然面临诸多困难:

  1. 如何正确轮换IP?事实上,仅轮换IP是不够的,我们提出一个概念,叫“隐私上下文轮换”
  2. 如何使用单台机器每天提取数千万数据点?
  3. 如何保证数据准确性?
  4. 如何保证调度准确性?
  5. 如何保证分布式系统弹性?
  6. 对使用了 CSS 混淆的字段,它的 CSS Path/XPath 每个网页都可能不同,Regex 也不好提取,这种情况下该如何正确提取字段?

幸运的是,现在有了开放源代码的成熟解决方案。

Exotic Amazon 是采集整个 amazon.com 网站的完整解决方案,开箱即用,包含亚马逊大多数数据类型,它将永久免费提供并开放源代码。

得益于 PulsarR 提供的完善的 Web 数据管理基础设施,整个解决方案由不超过 3500 行的 kotlin 代码和不到 700 行的 X-SQL 组成,以提取 650 多个字段。

数据简介

  • Best Seller - 每天更新,约 32,000 个类别,约 4,000,000 个产品记录
  • Most Wished For - 每天更新约 25,000 个类别,约 3,500,000 个产品记录
  • New Releases - 每天更新,约 25,000 个类别,约 3,000,000 条产品记录
  • Movers and Shakers - 约 20 个类别,每小时更新一次
  • Products - 约 20,000,000 个产品,每月更新
    • 100 多个字段
    • 标题、价格、库存、图像、描述、规格、店铺等
    • 赞助产品、类似产品、相关产品等
    • 阅读评论
    • 热门评论
  • Review - 每天更新

打开 System Glances 就可以一目了然地查看系统状态。

提取结果处理

提取规则

所有提取规则都是用 X-SQL 编写的。数据类型转换、数据清理也由强大的 X-SQL 内联处理,这也是我们需要 X-SQL 的部分原因。

一个很好的 X-SQL 例子是 https://github.com/platonai/exotic-amazon/blob/main/src/main/resources/sites/amazon/crawl/parse/sql/crawl/x-asin.sql,它从每个产品页面中提取 70 多个字段。

将提取结果保存在本地文件系统中

默认情况下,结果以 json 格式写入本地文件系统。

将提取结果保存到数据库中

有几种方法可以将结果保存到数据库中:

  • 将结果序列化为键值对,并保存为 WebPage 对象的一个字段,这是整个系统的核心数据结构
  • 将结果写入 JDBC 兼容的数据库,如 MySQL、PostgreSQL、MS SQL Server、Oracle 等
  • 自行编写几行代码,将结果保存到您希望的任何目的地

技术特性

  • RPA:机器人流程自动化、模仿人类行为、采集单网页应用程序或执行其他有价值的任务
  • 高性能:高度优化,单机并行渲染数百页而不被屏蔽
  • 低成本:每天抓取 100,000 个浏览器渲染的电子商务网页,或 n * 10,000,000 个数据点,仅需要 8 核 CPU/32G 内存
  • 数据质量保证:智能重试、精准调度、Web 数据生命周期管理
  • 简洁的 API:一行代码抓取,或者一条 SQL 将整个网站栏目变成表格
  • X-SQL:扩展 SQL 来管理 Web 数据:网络爬取、数据采集、Web 内容挖掘、Web BI
  • 爬虫隐身:浏览器驱动隐身,IP 轮换,隐私上下文轮换,永远不会被屏蔽
  • 大规模采集:完全分布式,专为大规模数据采集而设计
  • 大数据支持:支持各种后端存储:本地文件/MongoDB/HBase/Gora
  • 日志和指标:密切监控并记录每个事件