Dashboard
Proxy Setting
Local Time Zone
Account
My News
Identity Authentication
Proxies
Scraping Automation
Proxy Setting
Promotion
Data for AI
學習如何使用 Python 爬取電子商務網站,是任何數位市場參與者的致勝關鍵技能。想像一下,您能夠自動追蹤主要競爭對手「電競筆電」的價格調降、在缺貨商品補貨時收到通知,或大規模分析顧客評論的情緒。這就是使用 Python 進行電子商務資料爬取所能釋放的強大力量。
雖然現代電子商務網站結構複雜,但本指南將引導您使用一種直接且現代化的方法——透過網路爬蟲 API。這種方法簡化了整個過程,讓您能專注於資料本身,而不是處理與網站互動的複雜挑戰。讓我們開始學習如何有效率地爬取商品資料吧。
首先,我們需要設定專案環境。請在您的電腦上為專案建立一個新資料夾,可以命名為 ecommerce_scraper。使用您的終端機或命令提示字元進入這個資料夾。
在 Python 開發中,使用虛擬環境來管理專案的依賴套件是一個最佳實踐。若要建立虛擬環境,請在您的專案資料夾中執行以下指令:
python -m venv venv
若要啟用虛擬環境,請根據您的作業系統使用對應的指令:
Windows:venv\Scripts\activate
macOS/Linux:source venv/bin/activate
在虛擬環境啟用後,您就可以開始安裝必要的套件了。
在這個專案中,我們的 Python 網路爬取任務只需要一個關鍵函式庫:requests。這個強大的函式庫讓我們能輕鬆地向網頁伺服器發送 HTTP 請求並處理其回應。
使用 pip 安裝 requests 函式庫:
pip install requests
現在,在您的專案資料夾中建立一個名為 scraper.py 的新 Python 檔案。在檔案的最上方,我們需要匯入將要使用的函式庫:用於 API 呼叫的 requests 函式庫、用於處理資料的內建 json 函式庫,以及用於儲存結果的 csv 函式庫。
import requests
import json
import csv
為了設定我們的請求,我們需要選擇一個服務並準備搜尋參數。一個好的網路爬蟲 API 會為您處理所有困難的部分:管理代理、解決驗證碼 (CAPTCHA) 和渲染 JavaScript。
選擇 API 服務後,您會得到一組 API 金鑰。這個金鑰會識別您的請求並授予您存取權限。在本教學中,我們將使用佔位符憑證。
API_KEY = 'YOUR_API_KEY' # 請替換成您真實的 API 金鑰
API_URL = 'https://api.scrapingservice.com/ecommerce/search'
接下來,我們準備「payload」來告訴 API 我們要尋找什麼。假設我們想從美國的視角在 Amazon 上搜尋「電競筆電」。
payload = {
'source': 'amazon',
'query': 'gaming laptop',
'country': 'us'
}
在設定完成後,我們現在可以使用 requests.post() 方法向 API 發送 POST 請求。我們會在請求的標頭 (headers) 中傳遞我們的 API 金鑰以進行身份驗證。
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
print("正在向 API 發送請求...")
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))
這段程式碼會發送請求並將伺服器的回應儲存在 response 變數中。一個成功的請求會返回 200 的狀態碼,表示資料已成功擷取。
僅僅擷取資料是不夠的;我們需要提取有用的資訊並將其儲存下來。API 的回應將是一個 JSON 物件。我們首先將其解析成一個 Python 字典,然後遍歷所有商品,提取標題、價格和庫存狀況。
為了讓資料便於分析,我們會將其儲存到一個 CSV 檔案中。我們會開啟一個名為 scraped_products.csv 的檔案,定義我們的欄位標題,並為每個找到的商品寫入新的一行。這讓我們電子商務資料爬取的成果乾淨且易於取用。
我們剛才建立的腳本非常適合一次性的測試。但當您需要每天爬取一萬筆商品資料時會發生什麼事?您很快就會碰壁。電子商務網站會部署精密的系統來偵測和阻擋爬取活動,通常是基於請求者的 IP 位址。從同一個 IP 發送數千次請求很快就會導致被阻擋、出現驗證碼和收到誤導性的資料。
為了克服這些規模化的挑戰,一個強大的代理網路是不可或缺的。這正是像 LunaProxy 這樣的服務成為您資料爬取專案引擎的地方。
憑藉超過 2 億個合規來源的住宅 IP,LunaProxy 讓您能將請求分散到一個巨大的網路中。這讓您的爬蟲活動看起來像是來自真實使用者的自然流量,從而大幅降低被阻擋的風險。
電子商務的定價和商品供應狀況常因使用者地點而異。LunaProxy 提供國家、州份甚至城市級別的定位,讓您的 Python 腳本能爬取商品資料,如同身在紐約或倫敦等特定市場的顧客所看到的一樣。
手動管理 IP 效率低落。LunaProxy 可以為每個請求自動輪換 IP 位址,確保高成功率和資料完整性,而不會增加您程式碼的複雜度。
將 LunaProxy 與您的 Python requests 腳本整合非常直接。您可以輕鬆設定您的 HTTP 請求來使用 LunaProxy 的網路,立即將您的專案從一個簡單的腳本升級為一個強大的、可擴展的資料收集工具。
這是完整的 scraper.py 腳本,結合了以上所有步驟。
import requests
import json
import csv
# 步驟四:設定 API 請求
API_KEY = 'YOUR_API_KEY' # 請替換成您真實的 API 金鑰
API_URL = 'https://api.scrapingservice.com/ecommerce/search'
payload = {
'source': 'amazon',
'query': 'gaming laptop',
'country': 'us'
}
# 步驟五:執行爬取並擷取資料
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
print("正在向 API 發送請求...")
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))
# 步驟六:解析並儲存爬取到的商品資料
if response.status_code == 200:
results = response.json()
products = results.get('products', [])
if products:
print(f"成功找到 {len(products)} 項商品。正在儲存至 CSV...")
with open('scraped_products.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['title', 'price', 'availability']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for product in products:
writer.writerow({
'title': product.get('title', 'N/A'),
'price': product.get('price', 'N/A'),
'availability': product.get('availability', 'N/A')
})
print("資料已成功儲存至 scraped_products.csv")
else:
print("API 請求成功,但未找到任何商品。")
else:
print(f"擷取資料失敗。狀態碼:{response.status_code}")
print(f"回應內容:{response.text}")
恭喜!您現在擁有一個功能齊全的 Python 腳本,並清楚了解如何使用 Python 爬取電子商務網站。透過利用網路爬蟲 API,您可以繞過許多常見的障礙,直接專注於提取和儲存有價值的商品資料。對於任何大規模的電子商務資料爬取專案,整合像 LunaProxy 這樣可靠的代理服務是獲得一致成果的必要條件。
嘗試不同的搜尋查詢或設定不同的目標國家。
修改腳本以爬取額外的資料欄位,如商品網址或評論。
設定排程,讓您的腳本每天自動運行以追蹤長期變化。
答:在許多司法管轄區,爬取公開可用的資料通常被認為是合法的。然而,您必須始終尊重網站的服務條款,避免爬取個人資料,並確保您的活動不會干擾網站的正常運作。
答:雖然像 Scrapy 這樣的函式庫功能強大,但它們需要您自己處理所有反爬取的挑戰。而爬蟲 API 會為您處理這些複雜問題,從而節省大量的開發時間並提高可靠性。
答:爬取登入後的資料更為複雜,並涉及重大的道德和法律考量。這通常需要進行會話管理 (處理 cookies),且可能違反網站的服務條款。對於這類任務,確保您有權存取和處理這些資料至關重要。
請通過郵件聯繫客服
我們將在24小時內通過電子郵件回复您
Sign in with Google
For your payment security, please verify