- Python
- Selenium
- requests
- Chrome browser
-
將 repo 複製到自己的資料夾,並安裝需要的套件
$ git clone https://github.com/jumpingchu/PChome-AutoBuy.git $ cd PChome-AutoBuy $ pip install -r requirements.txt
-
準備 chromedriver
-
MacOS:
- 安裝 chromedriver
$ brew install chromedriver
settings.py
的DRIVER_PATH
填入上面顯示的路徑(如:/usr/local/bin/chromedriver)
-
Windows:
- 在 Chrome 網址列輸入
chrome://settings/help
確認自己的 Chrome 版本(本人是使用 v91.0) - 下載對應 Chrome 版本的
chromedriver.exe
並放在同個資料夾內 (前往下載)
- 在 Chrome 網址列輸入
-
-
在
settings.py
填入資料(請保管好個資) -
執行程式
$ python pchome_autobuy.py
-
可以先拿其他的商品連結做測試,以防搶購時的突發狀況或錯誤(但請記得馬上取消訂單!)
-
settings.py
內的CHROME_PATH
可讓 chrome 記住登入資訊,可提升搶購速度,建議使用 -
部分程式碼依照每個人不同狀況,需要做一些調整,細節請參閱 下一小節 或是程式碼註解
-
本專案 尚未適用 於數量多於1或必須選擇顏色或樣式的商品
-
禁止用於大量收購並哄抬價格的黃牛行為
-
進入商品頁連結、取得商品 ID,判斷商品是否開賣(若未開賣則會 1 秒後重試,達 5 次即停止)
-
將商品加入購物車
-
前往購物車
-
登入帳戶
- 若有使用 CHROME_PATH 記住登入資訊,第二次執行程式前可選擇註解掉
-
點選一次付清 (或 LINE Pay)
-
提示訊息點擊「確定」
- 此為近期物流較忙碌的特殊狀況,但仍有某些商品不會出現
-
填入身分證字號、生日、信用卡安全碼
-
勾選同意
- 若帳號有設定記住付款資訊,要記得註解掉
-
點擊送出訂單
-
通常是因為前一個步驟無法執行,請檢查程式碼是否有按照正確順序進行
-
例如:發現進入購物車頁面卻沒有點選「一次付清」,有可能是前面的登入步驟已被省略但程式沒有註解掉,導致找不到登入的位置
--
-
可能是 CHROME_PATH 設定有誤,導致登入 session 沒有成功被瀏覽器紀錄
-
可能的解決方法可參考 Issue #8
--
- 經 Issue #10 回報,可能是使用了「聯名卡付款」時會有的狀況,可手動點選、或是改用其他信用卡或付款方式
--
- 目前的解決方案是在加入購物車之後等待 0.5 秒,秒數可依據搶購狀況自行斟酌,詳情請參考 Issue #12
-
如果你有想要新增的功能,或是你有發現 bug,歡迎隨時發 Issue 或是發 PR 喔!
-
感謝 sheway 提供新的功能與想法