chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從 0 到 1:用 PHP 爬蟲優(yōu)雅地拿下 Amazon 商品詳情

劉大雷 ? 來源:jf_82280871 ? 作者:jf_82280871 ? 2025-09-24 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 為什么選擇 PHP 做 Amazon 爬蟲?

表格

wKgZPGjTnIOAJ9vFAABH8h-QxKI851.png

一句話:如果你本來就在寫 Laravel,用 PHP 寫爬蟲等于「順路」。

2. Amazon 頁面結(jié)構(gòu) 60 秒速覽(2025-06 最新)

以 https://www.amazon.com/dp/B08N5WRWNW 為例:

表格

wKgZO2jTnI-ASfqgAABj_nLoWUY565.png

結(jié)論:95% 字段靜態(tài)直取,無需上重型瀏覽器。

3. 環(huán)境準(zhǔn)備:30 秒搭好最小可用環(huán)境

bash

# 創(chuàng)建項(xiàng)目
mkdir amz-php-crawler && cd amz-php-crawler
composer init --name="demo/amz-crawler" -s dev

# 安裝依賴
composer require guzzlehttp/guzzle symfony/dom-crawler symfony/css-selector fakerphp/faker

PHP ≥ 8.0 即可,Guzzle 7.x 自帶 PSR-18,后續(xù)想接 Hyperf 也很方便。

4. 核心流程:從 ASIN → 結(jié)構(gòu)化數(shù)組

ASIN → 下載詳情頁 → 解析靜態(tài)字段 → 調(diào) AJAX 價(jià)格/庫存 → 清洗 → CSV/MySQL/Kafka

5. 代碼實(shí)戰(zhàn):Guzzle + DOMXPath 極速版

php

client = new Client([
            'timeout' => 10,
            'headers' => [
                'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
                'Accept-Language' => 'en-US,en;q=0.9',
                'Referer'    => 'https://www.amazon.com/',
            ],
        ]);
    }

    public function fetchProduct(string $asin): array
    {
        $url = "https://www.amazon.com/dp/{$asin}";
        $html = $this->client->get($url)->getBody()->getContents();
        $crawler = new Crawler($html);

        $title = $crawler->filter('#productTitle')->text('');
        $priceWhole = $crawler->filter('.a-price .a-price-whole')->text('');
        $priceFrac = $crawler->filter('.a-price .a-price-fraction')->text('');
        $price = trim($priceWhole . '.' . $priceFrac);

        $rating = $crawler->filter('#acrPopover')->attr('title');
        $rating = $rating ? explode(' ', $rating)[0] : '';

        $reviewText = $crawler->filter('#acrCustomerReviewText')->text('');
        $reviewCount = filter_var($reviewText, FILTER_SANITIZE_NUMBER_INT);

        $imgJson = $crawler->filter('#imgTagWrapperId img')->attr('data-a-dynamic-image');
        $imgMap = json_decode($imgJson, true);
        $mainImg = $imgMap ? array_key_first($imgMap) : '';

        return [
            'asin'          => $asin,
            'title'         => trim($title),
            'price'         => $price,
            'rating'        => $rating,
            'review_count'  => (int) $reviewCount,
            'main_img'      => $mainImg,
            'crawled_at'    => date('Y-m-d H:i:s'),
        ];
    }
}

CLI 入口文件:

php

#!/usr/bin/env php
fetchProduct($asin);
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

運(yùn)行:

bash

php bin/amz.php B08N5WRWNW

輸出示例:

JSON

{
  "asin": "B08N5WRWNW",
  "title": "Apple AirPods Pro",
  "price": "249.00",
  "rating": "4.6",
  "review_count": 25430,
  "main_img": "https://images-na.ssl-images-amazon.com/images/I/71zny7BTRlL._AC_SL1500_.jpg",
  "crawled_at": "2025-06-24 18:42:12"
}

6. 反爬三板斧:UA 池、代理池、隨機(jī)延時(shí)

表格

wKgZPGjTnKeAEcPRAAArt6iBBdM931.png

Guzzle 中間件示例:

php

$stack = GuzzleHttpHandlerStack::create();
$stack->push(GuzzleHttpMiddleware::retry(function ($retries, $request, $response, $exception) {
    return $retries < 3 && ($exception || $response-?>getStatusCode() === 403);
}, function ($retries) {
    return 1000 * (2 ** $retries);
}));

7. Selenium 兜底:滑塊驗(yàn)證碼與動(dòng)態(tài)渲染

當(dāng) Amazon 出現(xiàn)滑塊時(shí),可用 php-webdriver 驅(qū)動(dòng) Chrome:

bash

composer require php-webdriver/webdriver

php

$host = 'http://localhost:4444/wd/hub'; // Selenium Standalone
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
$driver->get("https://www.amazon.com/dp/$asin");
sleep(5);
$html = $driver->getPageSource();
$driver->quit();

技巧

加載 stealth.min.js 隱藏 WebDriver 特征;

使用 undetected-chromedriver 可過新版滑塊。

8. 提速 10 倍:多進(jìn)程 + Swoole 協(xié)程

bash

composer require swoole/swoole

php

use SwooleRuntime;
use SwooleCoroutine;
use function SwooleCoroutinerun;

Runtime::enableCoroutine();
run(function () {
    $asins = ['B08N5WRWNW', 'B08L8DKCS1'];
    foreach ($asins as $asin) {
        Coroutine::create(function () use ($asin) {
            $spider = new AmzSpider();
            $data = $spider->fetchProduct($asin);
            file_put_contents("data/{$asin}.json", json_encode($data));
        });
    }
});

實(shí)測(cè):4 核 8G 機(jī)器,協(xié)程版 2k SKU/min,CPU 占用 45%。

9. 數(shù)據(jù)落地:CSV、MySQL、Kafka 一鍵切換

① CSV(快速驗(yàn)證)

php

$fp = fopen('amz.csv', 'a');
fputcsv($fp, array_keys($data));
fputcsv($fp, $data);
fclose($fp);

② MySQL(生產(chǎn))

php

$pdo = new PDO('mysql:host=localhost;dbname=amz', 'root', 'root');
$stmt = $pdo->prepare("REPLACE INTO product (asin,title,price,rating,review_count,main_img,crawled_at) VALUES (?,?,?,?,?,?,?)");
$stmt->execute([$data['asin'], $data['title'], $data['price'], $data['rating'], $data['review_count'], $data['main_img'], $data['crawled_at']]);

③ Kafka(實(shí)時(shí)流)

php

$producer = new KafkaProducer(function() {
    return [KafkaProducerConfig::BOOTSTRAP_SERVERS => 'localhost:9092'];
});
$producer->send([
    ['topic' => 'amz-product', 'value' => json_encode($data), 'key' => $data['asin']]
]);

10. 合規(guī)紅線:Amazon 爬蟲的法律底線

表格

wKgZO2jTnLmAKg5oAABN2f3eJak887.png

官方替代方案:Amazon Product Advertising API(PA-API 5.0)

穩(wěn)定、合規(guī)、無封 IP 風(fēng)險(xiǎn)

需 Associate Tag + 授權(quán),每日 1w 額度

結(jié)論:能 API 不爬蟲,能授權(quán)不硬剛。

11. 總結(jié)與進(jìn)階路線

? 原型階段:本文代碼直接跑,30 行即可出數(shù)
? 擴(kuò)展階段:協(xié)程池 + 代理池 + 重試,日采 50w SKU
? 生產(chǎn)階段:Hyperf + Kafka + ES 實(shí)時(shí)搜索
? 商業(yè)閉環(huán):價(jià)格告警、選品儀表盤、ERP 自動(dòng)訂價(jià)

12. 一鍵運(yùn)行 & 源碼

bash

git clone https://github.com/yourname/amz-php-crawler.git
cd amz-php-crawler
composer install
php bin/amz.php B08N5WRWNW

輸出示例:

18:42:12 INFO ASIN=B08N5WRWNW, title=Apple AirPods Pro, price=$249.00, rating=4.6, reviews=25430

如果本文對(duì)你有幫助,記得 點(diǎn)贊 + 收藏 + 在看,我們下期「PHP + Swoole 實(shí)時(shí)價(jià)格流」見!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    458

    瀏覽量

    28167
  • Amazon
    +關(guān)注

    關(guān)注

    1

    文章

    126

    瀏覽量

    17847
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    淘寶商品詳情 API:從商品數(shù)據(jù)細(xì)節(jié)中捕捉電商最新流行趨勢(shì),賦能商家決策

    淘寶商品詳情API是洞察電商趨勢(shì)的核心工具,通過商品信息、主圖視頻、SKU屬性等多維數(shù)據(jù),助力商家精準(zhǔn)捕捉消費(fèi)偏好、優(yōu)化產(chǎn)品設(shè)計(jì)、制定營銷與庫存策略,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的科學(xué)決策。
    的頭像 發(fā)表于 10-14 10:27 ?93次閱讀
    淘寶<b class='flag-5'>商品</b><b class='flag-5'>詳情</b> API:從<b class='flag-5'>商品</b>數(shù)據(jù)細(xì)節(jié)中捕捉電商最新流行趨勢(shì),賦能商家決策

    API實(shí)戰(zhàn)指南:如何高效采集京東商品詳情數(shù)據(jù)?這幾個(gè)接口必須掌握!

    在電商領(lǐng)域,無論是做數(shù)據(jù)分析、競品監(jiān)控,還是搭建自己的商品推薦系統(tǒng),采集商品詳情數(shù)據(jù)都是一項(xiàng)基礎(chǔ)且重要的工作。京東作為國內(nèi)電商巨頭之一,其平臺(tái)上的商品信息豐富且實(shí)時(shí)更新,但直接通過網(wǎng)頁
    的頭像 發(fā)表于 10-13 11:39 ?49次閱讀

    京東商品詳情接口實(shí)戰(zhàn)解析:調(diào)用優(yōu)化商業(yè)價(jià)值挖掘(附避坑代碼)

    本文深入解析京東商品詳情接口jd.union.open.goods.detail.query,涵蓋核心特性、權(quán)限限制、關(guān)鍵參數(shù)及調(diào)用避坑指南。通過實(shí)戰(zhàn)代碼演示數(shù)據(jù)采集、促銷解析與商業(yè)分析,助力開發(fā)者高效獲取價(jià)格、庫存、評(píng)價(jià)等全維度數(shù)據(jù),挖掘供應(yīng)鏈與定價(jià)策略價(jià)值,顯著提升對(duì)
    的頭像 發(fā)表于 10-10 09:28 ?186次閱讀
    京東<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>接口實(shí)戰(zhàn)解析:<b class='flag-5'>從</b>調(diào)用優(yōu)化<b class='flag-5'>到</b>商業(yè)價(jià)值挖掘(附避坑代碼)

    別踩分頁坑!京東商品詳情接口實(shí)戰(zhàn)指南:并發(fā)優(yōu)化數(shù)據(jù)完整性閉環(huán)

    京東商品詳情接口(jingdong.ware.get)是電商數(shù)據(jù)開發(fā)的核心難點(diǎn),本文詳解其權(quán)限申請(qǐng)、分頁優(yōu)化、多規(guī)格遞歸解析與完整性校驗(yàn)等實(shí)戰(zhàn)方案,結(jié)合代碼示例與性能調(diào)優(yōu)參數(shù),助你高效穩(wěn)定對(duì)接,提升數(shù)據(jù)獲取效率2.5倍以上,適用于各類規(guī)模店鋪的數(shù)據(jù)需求。
    的頭像 發(fā)表于 09-30 15:50 ?726次閱讀

    愛回收商品詳情接口全方位對(duì)接指南:認(rèn)證機(jī)制數(shù)據(jù)提取最佳實(shí)踐(附 Python 代碼 + 成色數(shù)據(jù)處理)

    本文詳解愛回收二手?jǐn)?shù)碼商品詳情接口對(duì)接,涵蓋認(rèn)證、簽名生成、成色映射、估價(jià)緩存等核心環(huán)節(jié),提供可復(fù)用代碼與避坑指南,解決簽名失敗、數(shù)據(jù)延遲等常見問題。
    的頭像 發(fā)表于 09-25 10:33 ?307次閱讀

    當(dāng)當(dāng)網(wǎng)商品詳情接口全方位對(duì)接指南:認(rèn)證機(jī)制數(shù)據(jù)提取最佳實(shí)踐

    本文詳解當(dāng)當(dāng)網(wǎng)商品詳情接口的全流程技術(shù)對(duì)接方案,涵蓋OAuth 2.0認(rèn)證、簽名生成、Python實(shí)戰(zhàn)代碼及企業(yè)級(jí)優(yōu)化策略,助開發(fā)者高效構(gòu)建比價(jià)系統(tǒng)、導(dǎo)購應(yīng)用等,實(shí)現(xiàn)數(shù)據(jù)合規(guī)穩(wěn)定獲取。
    的頭像 發(fā)表于 09-25 09:23 ?253次閱讀

    0 1 PHP 爬蟲優(yōu)雅拿下京東商品詳情

    在電商數(shù)據(jù)驅(qū)動(dòng)的時(shí)代, 商品詳情數(shù)據(jù) 成為市場(chǎng)分析、價(jià)格監(jiān)控、競品調(diào)研的核心燃料。京東作為國內(nèi)頭部電商平臺(tái),其商品信息豐富、更新頻繁,是數(shù)據(jù)開發(fā)者眼中的“香餑餑”。 本文將帶你
    的頭像 發(fā)表于 09-23 16:42 ?366次閱讀
    <b class='flag-5'>從</b> <b class='flag-5'>0</b> <b class='flag-5'>到</b> <b class='flag-5'>1</b>:<b class='flag-5'>用</b> <b class='flag-5'>PHP</b> <b class='flag-5'>爬蟲</b><b class='flag-5'>優(yōu)雅</b>地<b class='flag-5'>拿下</b>京東<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>

    VVIC 平臺(tái)商品詳情接口高效調(diào)用方案:簽名驗(yàn)證數(shù)據(jù)解析全流程

    本文詳解VVIC平臺(tái)商品詳情接口調(diào)用全流程,涵蓋參數(shù)配置、簽名生成、異常處理與數(shù)據(jù)解析,提供可復(fù)用的Python代碼及避坑指南,助力開發(fā)者高效實(shí)現(xiàn)安全、穩(wěn)定的數(shù)據(jù)對(duì)接。
    的頭像 發(fā)表于 09-23 10:28 ?280次閱讀

    淘寶/天貓:通過商品詳情API實(shí)現(xiàn)多店鋪商品信息批量同步,確保價(jià)格、庫存實(shí)時(shí)更新

    自動(dòng)化批量同步,確保信息實(shí)時(shí)更新。本文將逐步介紹如何利用API高效解決這一問題。 1. 理解商品詳情API 淘寶/天貓的商品詳情API(如
    的頭像 發(fā)表于 09-08 16:05 ?329次閱讀
    淘寶/天貓:通過<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>API實(shí)現(xiàn)多店鋪<b class='flag-5'>商品</b>信息批量同步,確保價(jià)格、庫存實(shí)時(shí)更新

    eBay 商品詳情 API 深度解析:基礎(chǔ)信息變體數(shù)據(jù)獲取全方案

    通過本文提供的方案,開發(fā)者可以快速實(shí)現(xiàn) eBay 商品詳情數(shù)據(jù)的獲取和處理,為跨境電商應(yīng)用提供豐富的商品信息支持。實(shí)際開發(fā)中,需遵守 eBay 開發(fā)者協(xié)議,合理使用獲取的商品數(shù)據(jù)。
    的頭像 發(fā)表于 08-18 10:17 ?429次閱讀
    eBay <b class='flag-5'>商品</b><b class='flag-5'>詳情</b> API 深度解析:<b class='flag-5'>從</b>基礎(chǔ)信息<b class='flag-5'>到</b>變體數(shù)據(jù)獲取全方案

    淘寶 API 實(shí)現(xiàn)天貓店鋪商品詳情頁智能優(yōu)化

    ? 在競爭激烈的電商環(huán)境中,天貓店鋪的商品詳情頁是影響用戶轉(zhuǎn)化率的關(guān)鍵因素。通過淘寶開放平臺(tái)提供的API,我們可以實(shí)現(xiàn)智能優(yōu)化,提升用戶體驗(yàn)和銷售業(yè)績。本文將從零開始,逐步介紹如何利用淘寶API進(jìn)行
    的頭像 發(fā)表于 08-13 14:35 ?456次閱讀
    <b class='flag-5'>用</b>淘寶 API 實(shí)現(xiàn)天貓店鋪<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>頁智能優(yōu)化

    如何利用京東商品詳情id拿到商品的詳細(xì)信息 示例展示

    利用京東商品詳情 ID(即 SKU ID)獲取商品詳細(xì)信息,可通過京東開放平臺(tái)官方 API 或非官方接口(逆向解析)實(shí)現(xiàn)。以下是兩種方式的示例展示,包含代碼實(shí)現(xiàn)與數(shù)據(jù)解析: 一、核心概念:京東
    的頭像 發(fā)表于 07-10 09:37 ?631次閱讀

    《仿盒馬》app開發(fā)技術(shù)分享-- 商品詳情頁(10)

    的各個(gè)屬性參數(shù)、商品的圖片、商品規(guī)格、活動(dòng)詳情等 功能分析 商品詳情頁面的結(jié)構(gòu)需要我們?nèi)?b class='flag-5'>用比較多
    發(fā)表于 06-30 08:47

    《仿盒馬》app開發(fā)技術(shù)分享-- 自定義標(biāo)題欄&amp;商品詳情初探(9)

    () { Column() { CommonTopBar({ title: \"商品詳情\", alpha: 0, titleAlignment: TextAlign.Center
    發(fā)表于 06-30 08:40

    爬蟲數(shù)據(jù)獲取實(shí)戰(zhàn)指南:入門高效采集

    爬蟲數(shù)據(jù)獲取實(shí)戰(zhàn)指南:入門高效采集 ? ? 在數(shù)字化浪潮中,數(shù)據(jù)已成為驅(qū)動(dòng)商業(yè)增長的核心引擎。無論是市場(chǎng)趨勢(shì)洞察、競品動(dòng)態(tài)追蹤,還是用戶行為分析,爬蟲技術(shù)都能助你快速捕獲目標(biāo)信息。
    的頭像 發(fā)表于 03-24 14:08 ?1005次閱讀