返回博客

电商爬虫API快速入门指南

电商爬虫API

Iveta Vistorskyte

2021-12-20

Oxylabs 的电子商务爬虫 API是一个公共数据爬虫 API,旨在通过大多数电子商务网站收集大量实时本地化数据并搜索信息。这个数据收集工具作为一个值得信赖的解决方案,实现通过最复杂的电子商务网站收集公共信息。电子商务爬虫API 适用于商业用例,诸如价格监控、产品目录映射、竞争对手分析。

这份快速入门指南解释了电子商务爬虫API的运作方式。我们还将介绍如何无忧地开始使用这个数据收集工具。

您能够通过电商爬虫API获得什么?

  • 高成功率  有效地获得您的抓取结果。实施了基于 ML 的已获专利代理轮换工具,采用人工智能技术的指纹识别 ,以及自动重试系统帮助您达到 100% 的成功率。您的网络抓取操作几乎不会遭到 IP 封锁,过程畅通无阻。 

  • 代理池管理 – 将代理管理交给我们,您只需专注于收集并分析所需的公共数据。电子商务爬虫 API 由市场上最大的代理池之一支持,在全球范围内有超过 1.02 亿个的IP。 

  • JavaScript 渲染 – 即使从最复杂的网站收集电子商务公共数据。我们的专业团队为您自动运行无头浏览器,通过最先进的电子商务目标获取公共数据。

  • 结构化的电子商务数据 – 不用担心不断变化的电子商务网站布局。基于 ML 的自适应解析功能可以适应变化,自动检测任何电子商务目标中的产品属性,并以 JSON 提供已解析的数据。 

  • 各种集成选项 - 从异步(push-pull)、同步(realtime)或类似代理(super API)集成选项中进行选择。通过 REST API 获得您的公共数据,或选择所需的数据交付到云(S3 或 GCP。)Oxylabs 的专业团队确保 99.9% 的正常运行时间,实现 24/7 全天候一致数据流。

  • 24/7 全天候支持  无论什么时候都能获得您所有问题的解答。我们的支持团队或您的专职客户经理将确保您的网络抓取过程不会因为意外问题或错误遭到中断。

数据来源

通过电子商务爬虫API,您可以通过各种来源获得JSON格式的已解析数据。有效地获得所需的电子商务数据,并确保您拥有便于分析所需的一切内容。

世界领先的电子商务市场

搜索页面中的公共数据来源:

  • 产品名称

  •  价格

  • 位置

  • URL

  •  赞助产品

  • 分页

产品页面中的公共数据来源: 

  • 名称和描述

  • 价格

  • 类别

  • 折扣和优惠券

  • 图片和可用性

  • 经销商信息

额外的1000多家电子商务网站

产品页面中的公开数据: 

  • 名称和描述

  • 折扣价

  • 正常价

  • 货币

  • 可用性

  • 图片网址

  • 产品 ID

*所有数据来源将在购买产品后提供。

电商爬虫API -它是如何运作的?

电商爬虫 API 是一个易于使用的工具,无需任何特殊的基础设施或资源。

  1. 选择产品 ID、链接或搜索短语

  2. 提交 GET 或 POST 请求

  3. 通过REST API直接接收所需的公共数据或上传到云

您会在仪表板上发现什么?

如果您选择使用Oxylabs的电子商务爬虫API,您将获得一个简便的仪表板。您可以关注您的数据使用统计并对您的订阅细节进行跟踪。不仅如此,您还可联系Oxylabs的客户服务团队,无论什么时候都能获得帮助。

身份验证

电商爬虫 API采用需要用户名和密码的基本 HTTP 身份认证。这是开始掌握该工具的最简单的方法。以下代码示例展示如何使用实时交付方法向books.toscrape.com发送 GET 请求,我们将在本指南后面的内容中讨论这种方法:

curl --user "USERNAME:PASSWORD" 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json" -d '{"source": "universal_ecommerce", "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html", "geo-location": "United States", "parser_type": "ecommerce_product", "parse": true}'

集成方法

Oxylabs的电子商务爬虫API提供了各种集成方法,每一种都有独特的好处。您可以选择一个最适合您需求的方法,并有效地获得所需的电子商务数据。

Push-Pull

当使用 push-pull 集成方法时,您需要与我们的端点保持稳定连接,以获取所需的公共数据。在这种情况下,您只需向我们发送一个请求,然后我们返回您的工作 ID。工作完成后,您可以使用这个id 从 /results端点获取数据。 

您可以自己检查工作状态,或者设置一个接受 POST 请求的监听器。在这种情况下,一旦准备回收工作,我们会向您发送一个回调消息。

这种方法相对而言较为简单,轻松即可扩大规模。它提供了以下功能:

  • 单一查询。我们的端点将处理一个关键字或 URL 的单一查询。API 将向您发送一条确认消息,包括工作 id 和其他信息。在这个 id 的帮助下,您可以手动检查您的工作状态。

  • 检查工作状态。如果您在查询中包含 callback_url ,我们会在抓取任务完成后向您发送一个内容链接。如果您的查询不包含 callback_url,您应该自己检查工作状态。您需要使用响应消息 rel:self 下 href 中的 URL。 

  • 检索工作内容。一旦工作内容准备就绪,您便可使用 rel:results 下 href 中的 URL 来获取。 

  • 批量查询。电子商务爬虫 API 可以对多个关键字执行查询,每批最多可执行 1000 个关键字。为此,您必须发布查询参数作为 JSON 主体的数据。系统会将每个关键字作为一个单独的请求进行处理,并为每个请求返回唯一的工作 id。 

  • 获取通知者 IP 地址列表。要将向您发送回调消息的 IP 列入白名单,您应该向https://data.oxylabs.io/v1/info/callbacker_ips 端点发送一个 GET 请求。

  • 上传至存储器。抓取的内容默认存储在我们的数据库中。要检索结果,您需要查询我们的端点。您也可以通过使用自定义存储功能将所有数据直接迁移到您的存储空间。

  • 回调。当数据收集任务完成后,我们会向您的设备发送一个回调请求,并向您提供一个 URL,以获得抓取的数据。

在本快速入门指南中,我们提供了一个示例,介绍如何使用推拉集成方法和 cURL库与电商爬虫 API 进行交互以提出请求。我们将在美国地理定位中从名为的虚拟电子商务网站中提取已解析的产品数据。如果您希望得到 HTML 页面内容,而不是解析的数据,则仅需删除'parse'和'parser_type'参数即可。

单个查询请求的示例:

curl --user "USERNAME:PASSWORD" 'https://data.oxylabs.io/v1/queries' -H "Content-Type: application/json" -d '{"source": "universal_ecommerce", "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html", "geo_location": "United States", "parse": true, "parser_type": "ecommerce_product"}'

初始响应输出的样例:

{  
  "created_at":"2019-10-01 00:00:01",   "client_id":1,
  "domain": "com",
  "geo_location": "United States",
  "id": "6849255332305179649",
  "limit": 10,
  "locale": "",
  "pages": 1,
  "parse": true,
  "parser_type": "ecommerce_product",
  "render": "mhtml",
  "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
  "query": "",
  "source": "universal",
  "start_page": 1,
  "status": "pending",
  "storage_type": null,
  "storage_url": null,
  "subdomain": "books",
  "content_encoding": "utf-8",
  "updated_at": "2019-10-01 00:00:15",
  "user_agent_type": "desktop",
  "session_info": null,
  "statuses": [],
  "_links": [
    {
      "rel": "self",
      "href": "http://data.oxylabs.io/v1/queries/6849255332305179649",
      "method": "GET"
    },
    {
      "rel": "results",
      "href": "http://data.oxylabs.io/v1/queries/6849255332305179649/results",
      "method": "GET"
    }
  ]
}

最初的响应表明,我们的系统中已经创建了专门用于爬取的网站。这意味着该网站还会显示所有作业参数和链接,借此检查作业是否完成,或从哪里下载内容。为了检查作业是否处于"status": "done",您可以使用来自 ["_links"][0]["href"] 的链接:http://data.oxylabs.io/v1/queries/6849255332305179649

如何检查作业状态的示例:

curl --user "USERNAME:PASSWORD" 'http://data.oxylabs.io/v1/queries/6849255332305179649'

该响应将包含与初始响应相同的数据。如果作业处于"status": "done", 您可以使用来自 ["_links"][1]["href"] 的链接http://data.oxylabs.io/v1/queries/6849255332305179649/results。

如何检索数据的示例:

curl --user "USERNAME:PASSWORD" 'http://data.oxylabs.io/v1/queries/6849255332305179649/results'

响应数据输出的样例:

{
    "results": [
        {
            "content": {
                "ids": [],
                "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
                "brand": null,
                "image": null,
                "price": 51.77,
                "title": "A Light in the Attic",
                "currency": "£",
                "old_price": null,
                "description": "Product Description. It's hard to imagine a world without A Light in the Attic. This now-classic collection of poetry and drawings from Shel Silverstein celebrates its 20th anniversary with this special edition. Silverstein's humorous and creative verse can amuse the dowdiest of readers. Lemon-faced adults and fidgety kids sit still and read these rhythmic words and laugh and smile and love th It's hard to imagine a world without A Light in the Attic. This now-classic collection of poetry and drawings from Shel Silverstein celebrates its 20th anniversary with this special edition. Silverstein's humorous and creative verse can amuse the dowdiest of readers. Lemon-faced adults and fidgety kids sit still and read these rhythmic words and laugh and smile and love that Silverstein. Need proof of his genius? RockabyeRockabye baby, in the treetopDon't you know a treetopIs no safe place to rock?And who put you up there,And your cradle, too?Baby, I think someone down here'sGot it in for you. Shel, you never sounded so good. ...more. Product Information.",
                "availability": null,
                "parse_status_code": 12000,
                "additional_properties": [
                    {
                        "UPC": "a897fe39b1053632"
                    },
                    {
                        "Product Type": "Books"
                    },
                    {
                        "Price (excl. tax)": "£51.77"
                    },
                    {
                        "Price (incl. tax)": "£51.77"
                    },
                    {
                        "Tax": "£0.00"
                    },
                    {
                        "Availability": "In stock (22 available)"
                    },
                    {
                        "Number of reviews": "0"
                    }
                ]
            },
            "created_at": "2021-10-04 08:49:29",
            "updated_at": "2021-10-04 08:49:41",
            "page": 1,
            "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
            "job_id": "6850713463170271233",
            "status_code": 200
        }
    ]
}

如果您希望我们的系统在作业自动完成后 ping 您的服务器,您现在就可以检索数据。请使用附加的“callback_url”:"YOUR_CALLBACK_LISTENER_IP" 参数,并参阅我们的文档来设置您的回调侦听器。如果您希望将数据直接发送到云存储, 则需要额外使用 “storage_type”和“storage_url”参数。要完全实现发送到云存储,请参阅上传到存储器文档

Realtime

实时交付方法与之前提到的回调方法类似。主要区别在于您会在同一个开放的 HTTPS 连接上实时取回您的数据。

实时请求的示例:

curl --user "USERNAME:PASSWORD" 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json" -d '{"source": "universal_ecommerce", "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html", "geo_location": "United States", "parse": true, "parser_type": "ecommerce_product"}'

将在开放连接上返回的响应体示例:

{
    "results": [
        {
            "content": {
                "ids": [],
                "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
                "brand": null,
                "image": null,
                "price": 51.77,
                "title": "A Light in the Attic",
                "currency": "£",
                "old_price": null,
                "description": "Product Description. It's hard to imagine a world without A Light in the Attic. This now-classic collection of poetry and drawings from Shel Silverstein celebrates its 20th anniversary with this special edition. Silverstein's humorous and creative verse can amuse the dowdiest of readers. Lemon-faced adults and fidgety kids sit still and read these rhythmic words and laugh and smile and love th It's hard to imagine a world without A Light in the Attic. This now-classic collection of poetry and drawings from Shel Silverstein celebrates its 20th anniversary with this special edition. Silverstein's humorous and creative verse can amuse the dowdiest of readers. Lemon-faced adults and fidgety kids sit still and read these rhythmic words and laugh and smile and love that Silverstein. Need proof of his genius? RockabyeRockabye baby, in the treetopDon't you know a treetopIs no safe place to rock?And who put you up there,And your cradle, too?Baby, I think someone down here'sGot it in for you. Shel, you never sounded so good. ...more. Product Information.",
                "availability": null,
                "parse_status_code": 12000,
                "additional_properties": [
                    {
                        "UPC": "a897fe39b1053632"
                    },
                    {
                        "Product Type": "Books"
                    },
                    {
                        "Price (excl. tax)": "£51.77"
                    },
                    {
                        "Price (incl. tax)": "£51.77"
                    },
                    {
                        "Tax": "£0.00"
                    },
                    {
                        "Availability": "In stock (22 available)"
                    },
                    {
                        "Number of reviews": "0"
                    }
                ]
            },
            "created_at": "2021-10-04 08:49:29",
            "updated_at": "2021-10-04 08:49:41",
            "page": 1,
            "url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html",
            "job_id": "6850713463170271233",
            "status_code": 200
        }
    ]
}

SuperAPI

当使用 SuperAPI 集成方法时,您只能提供完整格式的 URL,而不是域名或搜索查询参数。您也可以提供诸如位置的额外信息,说明您是否想对请求头中的数据进行解析。

在这种情况下,您应该使用我们的入口节点作为代理,通过电子商务爬虫 API 凭证进行授权,并忽略证书。所需公共数据将通过同一个开放的连接送达您的手中。

使用 cURL 库的 SuperAPI 请求样例:

curl -k -x realtime.oxylabs.io:60000 -U USERNAME:PASSWORD -H "X-Oxylabs-Geo-Location: United States" -H "X-Oxylabs-Parse: 1" -H "X-Oxylabs-Parser-Type: ecommerce_product" "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"

参数*

*所有参数将在购买产品后提供。

参数 描述 默认值
source 数据来源 -
url / query 直接 URL(链接) -
user_agent_type 设备类型和浏览器。完整列表可以在此处查阅。 desktop
geo_location 用于检索数据的代理地理位置。所支持位置的完整列表可以在此处查阅。对于某些来源,geo_location 参数设置了交付地点 – 联系我们的销售团队以获取我们的完整文档。 -
locale 区域设置,如 Accept-Language 标头所预期。 -
render 启用 JavaScript 渲染。当目标需要 JavaScript 加载内容时使用它。只通过 Push-Pull(又称回调)方法工作。这个参数有两个可用值:html(获得原始输出)和 png(获得一个 Base64 编码的屏幕截图)。 -
parse true 将返回已解析的数据。如果使用 universal_ecommerce 来源,则需要指定 parser_type。 -
parser_type 可用选项:ecommerce_product。 -
context: content Base64 编码的POST请求体。只有当http_method被设置为post时,它才有用。 -
context:
cookies
传递您自己的 cookies。 -
context:
follow_redirects
指明您是否希望爬虫跟踪重定向(带有目标 URL 的 3xx 响应)以获得重定向链末端的 URL 内容。 true
context:
headers
传递您自己的消息头.。 -
context:
http_method
如果您想通过电子商务万能爬虫向您的目标 URL 发出 POST 请求,请将其设置为 post。 GET
context:
session_id
如果您想在多个请求中使用同一个代理,则可使用这个参数。只要把您的会话设置成您喜欢的任何字符串,我们将为这个 ID 分配一个代理,保留最多 10 分钟。在此之后,如果您用相同的会话 ID 提出另一个请求,一个新的代理将被分配给这个特定的会话 ID。 -
context:
successful_status_codes
定义一个(或几个)自定义的 HTTP 响应代码,在这个代码,我们应该认为抓取成功并将内容返回给您。如果您希望我们返回 503 错误页面或其他一些非标准情况,则可能有用。 -
callback_url 您的回调端点的 URL。 -
storage_type 存储器服务提供者。我们支持 Amazon S3 和谷歌云存储器。这些存储器提供者的 storage_type 参数值相应为 s3 和gcs。完整建置可以在 Upload to Storage 页面查阅。该功能只通过 Push-Pull(回调)方法工作。 -
storage_url 您的存储桶名称。只通过 Push-Pull(回调)方式工作。 -

响应代码

响应 错误信息 描述
204 无内容 您正试图检索一项尚未完成的工作。
400 多个错误信息 错误请求结构可能是参数拼写错误或无效值。响应体将有一个更具体的错误信息。
401 “未提供授权头”/“无效授权头”\“未找到客户” 缺少授权头或登录凭证不正确。
403 禁用 您的账户无法访问此资源。
404 未找到 您正在寻找的工作编号已不存在。
429 请求次数太多 超出了速率上限。请联系您的客户经理以增加上限。
500 未知错误 服务不可用。
524 服务不可用 服务不可用。
612 未定义的内部错误 出了点问题,我们没能处理您提交的工作。您可以重试一次,但无需支付额外费用,因为我们不对未能完成的工作收费。如果这不起作用,请与我们联系。
613 重试太多次后出现故障 我们尝试抓取您提交的工作,但在达到我们的重试上限后取消。

总结

电子商务爬虫 API 是一个高级工具,使您能够从大多数电子商务网站收集大量的实时本地化数据和搜索信息。为了简化集成,我们提供了多种集成和数据交付方式,所有这些方式均确保无缝的数据交付。同于其他 Oxylabs 的产品,电子商务爬虫 API 具有额外好处,包括一个简便的仪表板和 24/7 全天候客户支持。 

我们希望本指南使电子商务API的功能更易理解,并涵盖所有关于使用该产品的问题。如果您仍不清楚该公共数据收集工具的各个方面,请通过support@oxylabs.io与我们取得联系。

关于作者

Iveta Vistorskyte

内容经理

Iveta Vistorskyte 在 Oxylabs 担任一名内容经理。作为一名作家和挑战者,她决定进军技术领域,并立即对这个领域产生了兴趣。当她不工作时,您可能会发现她只是在听她最喜欢的音乐或与朋友们玩棋盘游戏来放松身心。

Oxylabs博客上的所有信息均按“原样”提供,仅供参考。对于您使用Oxylabs博客中包含的任何信息或其中可能链接的任何第三方网站中包含的任何信息,我们不作任何陈述,亦不承担任何责任。在从事任何类型的抓取活动之前,请咨询您的法律顾问,并仔细阅读特定网站的服务条款或取得抓取许可。

在这篇文章


  • 您能够通过电商爬虫API获得什么?

  • 数据来源

  • 电商爬虫API -它是如何运作的?

  • 您会在仪表板上发现什么?

  • 身份验证

  • 集成方法

  • 参数*

  • 响应代码

  • 总结

选择Oxylabs®,业务更上一层楼


隐私政策

oxylabs.cn© 2022 保留所有权利©