iT邦幫忙

0

python發送request給pchome讓商品自動加入購物車

  • 分享至 

  • xImage

如標題,我在嘗試利用python.requests寫一個自動加入購物車的程式。
但寫到一半就遇到問題。我目前的code如下:

import requests                                                       
import time 

t = int(round((time.time())*1000))

session = requests.session()
get =session.get('https://24h.pchome.com.tw/prod/DGBJAF-A900962EG?fq=/S/DGCV0M')

cookies = get.cookies.get_dict()                                      
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82
Safari/537.36'}

snap_up = session.get(f'https://24h.pchome.com.tw/prod/cart/v1/prod/DGBJAFA900962EG-000/snapup?_{t}',headers=headers, cookies=cookies)  

print(snap_up.text)

print的結果是{"Expire":15,"Status":"ProdLocked","MACExpire":"","MAC":""}

但是在pchome用DevTool看Network的話,會看到正確的response是{"Expire":15,"Status":"OK","MACExpire":"2021/09/21 20:21:07","MAC":"f7cfcd2"}

我覺得一定是我的request有地方錯誤,但我抓不出來,還請各路大神方便的話幫我釐清一下,謝謝!

我是沒試過這些電商是否可用requests來連續下單,但,如果可以,早就被X翻,應該輪不到我來試就垮了,如果你真想做自動下單,只能往自動化的方向去思考,python+selenium來模擬瀏覽器的滑鼠鍵盤操作
k19950907 iT邦新手 5 級 ‧ 2021-09-22 11:36:11 檢舉
我試過selenium,但搶不贏其他bot,連加入購物車的機會都沒有,說到底我只是想從那些用bot大量搶購的黃牛手中買到商品而已QQ

會有用requests來做的想法是因為在github上看到用js寫的Pchome下單API (https://github.com/ALiangLiang/pchome-api),所以想嘗試用python試試看。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
Han
iT邦研究生 1 級 ‧ 2021-09-22 11:00:51

這東西只能自己研究哦,每個網站都有自己的防機器人的機制,需要不斷嘗試才知道什麼東西才是必要的

hint:快成功了

k19950907 iT邦新手 5 級 ‧ 2021-09-22 11:44:11 檢舉

我是超級新手,能想到的嘗試也就帶入header,cookies,但都沒有用

0
japhenchen
iT邦超人 1 級 ‧ 2021-09-22 13:56:39

搶不贏別人,那你就要考慮你的頻寬或電腦資源是不是不如人,人家可以同時發動200條多工執行緒來搶,也可能同時有100台電腦(常見的有網咖跟電腦教室),各台電腦各執行一個PYTHON在搶,你是有相同的資源跟人家拚?

驗證碼,如果你遇到了,或許可以交給GoogleVision
https://ithelp.ithome.com.tw/upload/images/20210923/201179541IGKlcINKy.png

0
asdf121472
iT邦新手 5 級 ‧ 2021-09-23 05:08:33

用電腦版或手機板按鍵精靈寫吧
手機版可以開好多模擬器
每個模擬器都代表一個手機

https://youtu.be/cnCuqOeCLk0

0
菜鳥碼農
iT邦新手 5 級 ‧ 2021-09-23 10:45:57

樓主會想用request就是想要略過前端操作,寫自動化操作就不會是答案了。

我要發表回答

立即登入回答