iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
自我挑戰組

30天認識爬蟲系列 第 21

[Day21] 實作:抓取商品價格變化

  • 分享至 

  • xImage
  •  

今天是第二十一天,我的目標是抓取指定網站上商品的價格資訊並記錄變化。
需用到的工具:

  • Python 3
  • BeautifulSoup4
  • Requests
  • Pandas

1.安裝所需的庫,在終端中運行以下命令來安裝必要的庫:

pip install requests beautifulsoup4 pandas

2.選擇目標網站,假設我們要抓取 Amazon 或其他電商網站的商品價格(請確認該網站的爬蟲政策,遵守網站的使用條款

3.編寫爬蟲腳本,下面是一個簡單的 Python 腳本範例,用於抓取商品價格:

import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import datetime

# 設定 URL 和要抓取的商品選擇器
url = 'YOUR_PRODUCT_URL'
price_selector = 'YOUR_PRICE_SELECTOR'  # 例如: '.price' 或 '#priceblock_ourprice'

def get_price(url, selector):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.content, 'html.parser')
    price = soup.select_one(selector).get_text(strip=True)
    return price

# 獲取價格並保存到 CSV 文件
def save_price(price):
    data = {'Date': [datetime.now().strftime('%Y-%m-%d %H:%M:%S')], 'Price': [price]}
    df = pd.DataFrame(data)
    df.to_csv('price_history.csv', mode='a', header=False, index=False)

# 主函數
if __name__ == '__main__':
    price = get_price(url, price_selector)
    print(f'Current price: {price}')
    save_price(price)

4.執行腳本,將上面的代碼保存在一個 Python 文件中(例如 price_tracker.py),然後在終端中運行:

python price_tracker.py

5.查看價格變化,每次運行腳本時,抓取的價格將被添加到 price_history.csv 文件中,可以使用 Pandas 讀取這個文件並分析價格變化。

注意事項

  • 確保遵循目標網站的爬蟲政策和使用條款,並且考慮到網站的訪問頻率,以免對網站造成過大負擔。
  • 可以擴展這個腳本,讓它定期自動運行(例如使用 cron 作業)或發送價格變化的通知。

上一篇
[Day20] Selenium入門
下一篇
[Day22] 應用代理IP
系列文
30天認識爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言