突破亞馬遜壁壘,Web Unlocker API 助您輕松獲取數據
在數據驅動決策的時代,電商平臺的海量數據是十足金貴的。然而,像亞馬遜這樣的巨頭為保護自身數據資產,構建了近乎完美的反爬蟲防線,比如IP封鎖、CAPTCHA驗證、瀏覽器指紋識別,常規爬蟲工具在這些防線面前往往束手無策。
下面介紹一種突破性技術Web Unlocker API,能夠自動處理所有網站解鎖操作,讓您在不需要專業編碼經驗的情況下,也能高效獲取亞馬遜平臺的各類數據。
一、Web Unlocker API簡介
Web Unlocker使用Bright Data的代理基礎設施,它具有三個主要組件:請求管理、瀏覽器指紋偽裝和內容驗證。這使得它能自動管理所有網站解鎖操作,包括CAPTCHA驗證、瀏覽器指紋識別、自動重試、選擇合適的請求頭和cookies等。當您需要獲取亞馬遜這樣的高防網站數據時,這些功能尤為重要。
與常規代理服務不同,Web Unlocker API只需發送一個包含目標網站的API請求,系統就會返回干凈的HTML/JSON響應。在后臺,它的智能算法無縫管理尋找最佳代理網絡、定制請求頭、指紋處理和CAPTCHA驗證等動態過程。
二、開始使用Web Unlocker API
Web Unlocker API可以以前所未有的成功率自動解鎖防范最嚴密的網站。它的成功率超高,不成功不收費,自動化周期管理,并且不需要任何的編碼和爬蟲經驗即可使用。
1.首先進入控制臺頁面,點擊左側第一個tab鍵“代理 & 抓取基礎設施”,找到“網頁解鎖器”,開始使用。
2.進入網頁解鎖器頁面后,填寫通道名稱,添加簡短描述,點擊添加
3.直接展示代理基礎設施/web_unlocker3的詳細信息
包含Web Unlocker API的詳細信息、配置信息、代碼示例。
4.配置網頁解鎖器
針對最難的網站進行自動化抓取,利用動態住宅IP,解決CAPTCHA,渲染JS,使用自定義指紋和cookies。
5.以Python腳本獲取亞馬遜平臺數據為示例
(1)定位具體數據
進入亞馬遜平臺后,搜索“gaming”,點擊搜索,復制網頁地址鏈接,在下面Python代碼中有需要。
這個頁面給出了很多電腦相關的產品,定位具體數據,比如華碩ROG的電腦、三星的固態硬盤的,還包含了產品信息、價格等。
(2)編寫Python代碼
代碼中需要修改為已配置好的web_unlocker3的詳細信息,比如主機brd.superproxy.io,端口33335,用戶名brd-customer-hl_da15f828-zone-web_unlocker3,密碼q9crj4rw9004等信息。
import requests
from bs4 import BeautifulSoup
import pandas as pd
import warnings
# 忽略SSL警告
warnings.filterwarnings('ignore', message='Unverified HTTPS request')
# 您的Bright Data憑證
customer_id = "brd-customer-hl_da15f828-zone-web_unlocker3"
zone_name = "web_unlocker3"
zone_password = "q9crj4rw9004"
# 代理設置
proxy_url = "brd.superproxy.io:33335"
proxy_auth = f"brd-customer-{customer_id}-zone-{zone_name}:{zone_password}"
proxies = {
"http": f"http://{proxy_auth}@{proxy_url}",
"https": f"http://{proxy_auth}@{proxy_url}"
}
# 目標亞馬遜搜索URL
target_url = "https://www.amazon.com/s?k=gaming&language=zh&_encoding=UTF8&content-id=amzn1.sym.860dbf94-9f09-4ada-8615-32eb5ada253a&pd_rd_r=55c71001-73f7-488e-a943-eff18bee567b&pd_rd_w=4hK8A&pd_rd_wg=JgRuS&pf_rd_p=860dbf94-9f09-4ada-8615-32eb5ada253a&pf_rd_r=FWYKX6PAWN9C758RR97V&ref=pd_hp_d_atf_unk"
# 添加適當的請求頭,模擬真實瀏覽器
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": "zh-CN,zh;q=0.9,en;q=0.8", # 設置為中文優先,因為URL包含language=zh參數
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.amazon.com/"
}
try:
print("正在通過Bright Data代理發送請求...")
response = requests.get(
target_url,
proxies=proxies,
headers=headers,
verify=False# 禁用SSL驗證
)
print(f"請求狀態碼: {response.status_code}")
# 保存HTML響應
with open("amazon_gaming_search.html", "w", encoding="utf-8") as file:
file.write(response.text)
print("成功獲取亞馬遜搜索數據,已保存到amazon_gaming_search.html")
# 解析搜索結果
soup = BeautifulSoup(response.text, "html.parser")
search_results = []
# 針對亞馬遜搜索結果頁面的選擇器
product_cards = soup.select(".s-result-item[data-asin]:not([data-asin=''])")
print(f"找到 {len(product_cards)} 個產品")
for card in product_cards:
asin = card.get("data-asin")
try:
title_element = card.select_one("h2 a span")
title = title_element.text.strip() if title_element else"N/A"
price_element = card.select_one(".a-price .a-offscreen")
price = price_element.text.strip() if price_element else"N/A"
rating_element = card.select_one(".a-icon-star-small")
rating = rating_element.text.strip() if rating_element else"N/A"
reviews_element = card.select_one("span.a-size-base.s-underline-text")
reviews = reviews_element.text.strip() if reviews_element else"N/A"
search_results.append({
"asin": asin,
"title": title,
"price": price,
"rating": rating,
"reviews": reviews,
"url": f"https://www.amazon.com/dp/{asin}"
})
print(f"已解析: {title[:30]}...")
except Exception as e:
print(f"解析產品 {asin} 時出錯: {str(e)}")
# 保存結果到CSV
if search_results:
df = pd.DataFrame(search_results)
df.to_csv("amazon_gaming_search_results.csv", index=False, encoding="utf-8-sig")
print(f"已成功抓取 {len(search_results)} 個搜索結果,保存到amazon_gaming_search_results.csv")
# 顯示前5條數據
print("\n搜索結果前5條數據:")
print(df.head().to_string())
else:
print("未找到搜索結果")
except Exception as e:
print(f"請求失敗: {str(e)}")
6.結果示例
成功運行后,代碼會下載亞馬遜游戲類別的搜索頁面HTML,將原始HTML保存到amazon_gaming_search.html文件,解析出產品信息(ASIN、標題、價格、評分、評論數等),將解析結果保存到amazon_gaming_search_results.csv文件。
三、Web Scraper
1.快速使用Web Scraper
Web Scrapers提供了最大的靈活性,無需維護代理和解封基礎設施,讓用戶能夠輕松地從任何地理位置抓取數據,同時避開驗證碼和網站封鎖。Web Scrapers作為一種專為網頁抓取設計的GUI瀏覽器,內置了網站解鎖功能,可自動處理封鎖問題。
Bright Data的Web Scrapers是一種云服務,能夠自動處理IP輪換、驗證碼解決和數據解析,將數據轉換為結構化格式。 對于亞馬遜數據,能夠提取標題、賣家名稱、品牌、描述、價格、貨幣、可用性和評論數量等信息。這種結構化的數據輸出使得分析和集成變得簡單直接,支持JSON、NDJSON和CSV等多種數據格式。
2.通過python獲取亞馬遜網頁數據
# 獲取商品信息
product_elements = driver.find_elements(By.CSS_SELECTOR, ".s-main-slot .s-result-item")
# 創建CSV文件并寫入數據
with open('amazon_products.csv', 'w', newline='', encoding='gbk') as csvfile:
fieldnames = ['Title', 'Price', 'Image URL']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for index, product in enumerate(product_elements):
try:
title = product.find_element(By.CSS_SELECTOR, ".a-text-normal").text
price = product.find_element(By.CSS_SELECTOR, ".a-price-whole").text
image_url = product.find_element(By.CSS_SELECTOR, "img.s-image").get_attribute("src")
print(f"Product {index + 1}:")
print(f"Title: {title}")
print(f"Price: {price} USD")
print(f"Image URL: {image_url}")
# 寫入CSV文件
writer.writerow({'Title': title, 'Price': price, 'Image URL': image_url})
except Exception as e:
print(f"Skipping product {index + 1} due to missing information.")
time.sleep(2)
# 關閉瀏覽器
driver.quit()
3.定位具體數據
4.運行并保存到csv文件
四、SERP API
SERP API是解鎖抓取套件的一部分,其核心優勢在于處理完整的代理、解鎖和解析基礎設施,讓用戶可以專注于從搜索引擎結果頁(SERPs)收集數據。SERP API通過模擬真實瀏覽器行為并提供完整的JavaScript支持來繞過搜索引擎的訪問限制,實時提供準確的、結構化的搜索數據。
這種強大的自動化機制處理了IP輪換、驗證碼解決、瀏覽器指紋管理等復雜問題,使用戶無需擔心被搜索引擎封鎖。
五、優惠升級
Web Unlocker (網頁解鎖器API)、Web Scraper API(網頁抓取API)、SERP API(搜索引擎結果頁 API)全部七五折,促銷代碼APIS25。
亮數據目前仍有首次充值1比1贈送,充多少送多少,最高送500美金(相當于半價),并可與其它所有促銷疊加使用,是中小企業商用的首選。
六、總結
Bright Data提供的Web Unlocker API、Web Scraper及SERP API構成了一套完整的數據采集解決方案,可有效應對亞馬遜等高防網站的反爬挑戰。
Web Unlocker API通過請求管理、瀏覽器指紋偽裝和內容驗證三大核心組件,實現了對CAPTCHA的自動解決、瀏覽器指紋的智能處理以及請求的自動優化。Web Scraper則提供了更高級的靈活性和控制力,能將原始數據轉化為結構化格式。SERP API專注于搜索引擎結果頁的數據獲取,進一步拓展了數據采集的邊界。
這些工具的核心價值在于讓數據采集工作變得簡單高效,使用戶無需深厚的編程背景也能實現專業級的數據抓取。