在競爭異常激烈的電子商務世界裏,數據是驅動成功的終極資產。對於任何在亞馬遜上運營的商家、行銷人員或分析師來說,能否獲取並解讀這些數據,是區分業務蓬勃發展與停滯不前的關鍵。在亞馬遜龐大的產品目錄核心,是一個簡單而強大的識別字:ASIN(亞馬遜標準識別碼)。大規模獲取 ASIN 的能力是進行有效競品分析、產品研究和價格監控的第一步。然而,手動收集成千上萬的 ASIN 是一項不可能完成的任務。正是在這裏,通過網路抓取實現自動化,成為改變遊戲規則的關鍵。
本篇綜合指南將向您精確展示如何使用 Python 採集亞馬遜 ASIN。Python 是一門強大且功能多樣的編程語言,非常適合這項工作。我們將不止步於一個基礎腳本,而是通過集成 LunaProxy 來向您展示如何構建一個強大的抓取工具。使用高質量的代理服務並非可選項,而是確保穩定、持續且無中斷地訪問亞馬遜產品數據的必需品。我們還將探討一種強大的無代碼替代方案,專為那些希望獲得數據但不想進行開發工作的用戶而設計。讀完本文,您將掌握構建所需工具的知識,以收集數據,從而做出更明智的商業決策。
亞馬遜 ASIN,全稱為亞馬遜標準識別碼 (Amazon Standard Identification Number),是一個十個字元的字母數字代碼,用於在亞馬遜市場上唯一地標識一個產品。您可以把它想像成產品在亞馬遜生態系統中的“身份證號”。在亞馬遜上銷售的每一個產品都有一個獨一無二的 ASIN,它是引用特定商品最可靠的方式。
對於書籍而言,ASIN 與 ISBN(國際標準書號)相同,但對於所有其他產品,當商品首次上傳到亞馬遜目錄時,會創建一個新的 ASIN。您可以在產品詳情頁上找到這個識別字,它也是從庫存管理到搜索查詢等一切功能的基礎。對於任何希望收集數據的人來說,ASIN 是連接所有其他有價值資訊(如價格、評論、排名和賣家詳情)的主鍵。而 Amazon ASIN 抓取工具就是一個專門設計用於從搜索結果頁、分類頁或賣家店鋪頁自動收集這些關鍵識別字的程式。
在自動化這個過程之前,瞭解如何手動查找 ASIN 會很有幫助。這有助於我們理解腳本將要尋找的目標。ASIN 很方便地直接位於任何亞馬遜產品頁面的 URL 中。
讓我們看一個示例 URL:
https://www.amazon.com/dp/B08L5VZKWT/ref=sspa_dk_detail_0
在這裏找到 ASIN 非常直接:
尋找 URL 中 /dp/ 的部分(它代表“詳情頁”)。
緊跟在 /dp/ 後面的十個字元代碼就是該產品的 ASIN。
在上面的例子中,ASIN 就是 B08L5VZKWT。
這個手動方法對於檢查一兩個產品來說很方便,但如果您需要分析成百上千個商品,就需要一個自動化的解決方案。這正是我們為什麼需要構建一個工具來使用 Python 採集亞馬遜 ASIN 的原因。
要構建一個強大的 Amazon ASIN 抓取工具,您的工具箱中需要幾個關鍵組件。從一開始就正確設置您的環境,可以為您省去未來大量的時間和潛在的麻煩。
Python 是網路抓取的首選語言,因為它語法簡單、可讀性強,並且擁有大量專為此目的構建的庫。如果您尚未安裝 Python,可以從 Python 官方網站下載。
Requests: 這個庫是 Python 中進行 HTTP 請求的黃金標準。它允許您的腳本僅用一行代碼就能連接到網頁並下載其 HTML 源代碼。
Beautiful Soup: 獲取 HTML 後,您需要一種方法來解析它並導航其結構。Beautiful Soup 這個庫在這方面表現出色,讓您可以輕鬆地從 HTML 文檔中搜索和提取特定資訊。
您可以通過打開終端或命令提示符並運行以下命令來安裝這些庫:
downloadcontent_copyexpand_less
pip install requests beautifulsoup4
這可以說是任何嚴肅的網路抓取專案中最關鍵的組件。當您從單一 IP 地址向像亞馬遜這樣的網站發出大量請求時,您的活動可能會被標記為異常,從而導致訪問中斷。代理服務通過不同的 IP 地址路由您的請求,使您的活動看起來像是來自多個獨立的用戶。LunaProxy 服務是這一需求的絕佳選擇,它提供了超過2億個高質量的住宅 IP,確保了訪問的持續性。
現在我們來到了專案的核心:編寫 Python 腳本。邏輯很簡單:我們的腳本將訪問一個亞馬遜搜索結果頁面,下載其內容,然後在 HTML 中篩選出所有的產品 ASIN。亞馬遜的網頁開發者讓我們的工作相對容易。在搜索結果頁面上,每個產品容器都有一個名為 data-asin 的特殊 HTML 屬性。這個屬性正包含著我們尋找的那個10字元的 ASIN。我們的腳本將專門針對這個屬性。
讓我們先構建一個不帶代理的初始腳本,以理解其基本機制。
downloadcontent_copyexpand_less
IGNORE_WHEN_COPYING_START
IGNORE_WHEN_COPYING_END
import requestsfrom bs4 import BeautifulSoup
def extract_amazon_asins(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Accept-Language': 'en-US,en;q=0.5'
}
print(f"嘗試從以下地址獲取內容: {url}")
try:
response = requests.get(url, headers=headers, timeout=15)
response.raise_for_status() # 檢查請求是否成功
soup = BeautifulSoup(response.content, 'html.parser')
# 查找所有包含 'data-asin' 屬性的 HTML 元素
product_containers = soup.find_all(lambda tag: tag.has_attr('data-asin'))
asins = set() # 使用集合來避免重複的 ASIN
for container in product_containers:
asin = container.get('data-asin')
# 簡單校驗以確保 ASIN 是有效的
if asin and len(asin) == 10 and asin.strip():
asins.add(asin)
if not asins:
print("未能找到任何 ASIN。頁面結構可能已更改。")
return None
return list(asins)
except requests.exceptions.RequestException as e:
print(f"發生網路或 HTTP 錯誤: {e}")
return None
if __name__ == "__main__":
target_url = "https://www.amazon.com/s?k=mechanical+keyboard"
asins_found = extract_amazon_asins(target_url)
if asins_found:
print(f"\n成功提取了 {len(asins_found)} 個唯一的 ASIN:")
for asin in asins_found:
print(asin)
這個腳本構成了我們 Amazon ASIN 抓取工具的基礎。然而,如果您重複運行它或用於抓取許多頁面,您很可能會遇到訪問中斷。要使其真正強大,我們需要集成我們的代理服務。
這一步將我們的腳本從一個簡單的概念驗證提升為一個可靠的數據收集工具。LunaProxy 提供了覆蓋195多個國家、超過2億個住宅 IP 的龐大網路,這對於大規模抓取至關重要。
住宅 IP 之所以優越,是因為它們與真實的家庭互聯網連接相關聯。這使得您的抓取流量與真實購物者的流量無法區分,從而大大降低了遇到驗證碼或其他中斷的幾率。
LunaProxy 龐大的網路和精准的地理位置選擇(可精確到城市級別)意味著您可以準確地收集本地化數據,同時無縫輪換 IP。
靈活的協議支持:LunaProxy 同時支持 HTTP(S) 和 SOCKS5 協議,為任何抓取專案提供了所需的多功能性。
要將 LunaProxy 集成到我們的腳本中,我們只需做一個小小的修改。Python 的 requests 庫需要 PySocks 包來處理 SOCKS5 連接,所以首先,讓我們安裝它:
downloadcontent_copyexpand_less
IGNORE_WHEN_COPYING_START
IGNORE_WHEN_COPYING_END
pip install pysocks
現在,我們將修改腳本以通過代理路由其請求。
downloadcontent_copyexpand_less
IGNORE_WHEN_COPYING_START
IGNORE_WHEN_COPYING_END
import requestsfrom bs4 import BeautifulSoup
def scrape_with_lunaproxy(url):
# --- 代理配置 ---
# 請替換為您的真實 LunaProxy 憑據
proxy_host = 'your_lunaproxy_ip'
proxy_port = 'your_lunaproxy_port'
proxy_user = 'your_username'
proxy_pass = 'your_password'
proxy_url = f"socks5h://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
proxies = {'http': proxy_url, 'https': proxy_url}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Accept-Language': 'en-US,en;q=0.5'
}
print(f"正通過 LunaProxy 發送請求至: {url}")
try:
# 關鍵改動是在請求中加入 'proxies' 參數
response = requests.get(url, headers=headers, proxies=proxies, timeout=25)
response.raise_for_status()
soup = BeautifulSoup(response.content, 'html.parser')
product_containers = soup.find_all(lambda tag: tag.has_attr('data-asin'))
asins = set()
for container in product_containers:
asin = container.get('data-asin')
if asin and len(asin) == 10 and asin.strip():
asins.add(asin)
if not asins:
print("未能找到任何 ASIN。頁面可能需要驗證碼或結構已更改。")
return None
return list(asins)
except requests.exceptions.RequestException as e:
print(f"使用代理時發生錯誤: {e}")
return None
if __name__ == "__main__":
target_url = "https://www.amazon.com/s?k=wireless+mouse"
asins_found = scrape_with_lunaproxy(target_url)
if asins_found:
print(f"\n使用 LunaProxy 成功提取了 {len(asins_found)} 個唯一的 ASIN:")
for asin in asins_found:
print(asin)
有了這個最終腳本,您現在就擁有了一個強大的工具,可以可靠、大規模地使用 Python 採集亞馬遜 ASIN,這一切都歸功於 LunaProxy 提供的強大而可擴展的連接。
雖然構建一個 Python Amazon 抓取工具功能非常強大,但它並非適合所有人。這個過程需要編程知識,並且隨著網站結構的變化需要持續維護。對於那些需要數據但不想承擔技術開銷的行銷人員、企業主和分析師來說,有一個強大的無代碼替代方案:LunaProxy 通用抓取 API。
這項服務通過為您處理所有複雜的網路抓取環節,徹底改變了遊戲規則。您無需編寫代碼,只需使用您想抓取的亞馬遜 URL 發起一個簡單的 API 調用。在後臺,LunaProxy 通用抓取 API 會利用其超過2億個住宅代理的龐大資源池,自動輪換它們,解決驗證碼,並解析頁面結構。
最終結果是,您會收到一個乾淨、結構化的 JSON 檔,其中包含您需要的所有 ASIN、標題、價格和其他數據,可立即在電子錶格或資料庫中使用。這是無需編碼進行抓取的完美解決方案,讓您能夠完全專注於利用數據做出戰略決策。對於任何重視速度和簡便性的人來說,LunaProxy API 是獲取高質量亞馬遜數據的最有效途徑。
掌握使用 Python 採集亞馬遜 ASIN 的能力,對於任何認真對待電子商務的人來說,都是一項革命性的技能。它將一項手動的、耗時的任務轉變為一個自動化的、高效的過程,從而產出寶貴的數據。
雖然 Python 及其庫為這個過程提供了引擎,但像 LunaProxy 這樣的高質量住宅代理服務則是確保它平穩、無中斷運行的燃料。對於那些尋求更快、無代碼路徑的人來說,LunaProxy 通用抓取 API 提供了同樣強大的解決方案。通過為您的需求選擇正確的工具,您就為獲取分析市場、瞭解競爭對手和推動業務向前發展所需的數據,創建了一條通道。
答:抓取像 ASIN、產品標題和價格這樣的公開數據是一個複雜的領域。您應始終查閱亞馬遜的服務條款及其 robots.txt 檔以瞭解他們的指導方針。關鍵在於您的抓取行為要尊重對方(例如,保持較慢的請求速率)並合乎道德地使用數據。本指南僅用於教育目的。
如果您想深入瞭解這一點,可以查看我們的博客:網頁抓取合法嗎?
答:要擴展您的 Amazon ASIN 抓取工具,您可以將抓取函數放入一個迴圈中,該迴圈遍曆頁碼。在亞馬遜上,URL 通常有一個 &page= 參數(例如 &page=2)。您的腳本可以為每個頁面修改 URL,並收集 ASIN,直到找不到更多產品為止。
答:LunaProxy 的關鍵優勢在於其巨大的規模(2億+ IP)和其住宅 IP 地址的品質。因為這些 IP 屬於真實的家庭互聯網連接,您的抓取流量被視為真實的用戶活動,這對於避免中斷至關重要。LunaProxy 對 HTTP(S) 和 SOCKS5 協議的支持也為任何抓取專案提供了技術靈活性。
答:像亞馬遜這樣的網站會頻繁更新其佈局。如果您的抓取工具停止工作,第一步是手動檢查頁面的 HTML,看結構是否已更改。例如,data-asin 屬性可能已被移動。然後,您需要更新腳本中的 BeautifulSoup 選擇器以匹配新的結構。使用像 LunaProxy 這樣可靠的服務也有助於確保問題不是由 IP 相關的訪問中斷引起的。