蝦皮自動遷到
想必大多數的人都有蝦皮帳號吧,不過要每天自己去領取蝦幣真的太麻煩了,所以今天就來教大家建立蝦皮的自動簽到,讓錢錢自己入帳!
你將會學到:
  1. selenium:爬蟲套件
  2. cookie 設定:實現免帳密、免認證登入
  3. windows 排程:讓程式自己 run 起來

python & selenium & webdriver

selenium 可以模擬出在瀏覽器的操作行為,我們可以利用 selenium 來領取蝦幣。

selenium

安裝 selenium: pip install selenium

webdriver

使用 selenium 爬蟲前,我們還需 webdriver 來啟動瀏覽器,這裡用 chrome 做示範!也可以下載自己喜歡的瀏覽器的。
  1. 確認 chrome 版本
  2. 點選右上角選單到 設定,再點選 關於 chrome,就可以看到版本了。
  3. 下載 Chrome driver
  4. 這個網址 下載相對應的 Chrome driver。

使用 Chrome driver

from selenium import webdriver
driver = webdriver.Chrome('path to chrome driver') # 指向 chromedriver 的位置
driver.get('https://shopee.tw/') # 打開瀏覽器視窗,開啟網頁
driver.close() # 關閉瀏覽器視窗
執行程式就會開啟瀏覽器並前往指定的網址了。
到目前已經可以使用 webdriver 了,我們往下一步邁進!

取得、使用 cookie

cookie 會記錄我們的使用資訊,讓我們不用輸入帳密即可登入,但也要保管好 cookie 喔,免得被人拿去壞壞。

取得 cookie

from selenium import webdriver
import json

driver = webdriver.Chrome('path to chrome driver')
driver.get('https://shopee.tw/')

cookie = driver.get_cookies() # get cookie

# 把 cookie 寫入檔案 (json 格式)
with open('cookie.json','w') as f:
    f.write(json.dumps(cookie))
利用 get_cookies() 取得 cookie,不過這時候我們還沒登入,不會有我們的使用資訊,因此將程式修改,等我們登入後再取得 cookie。
from selenium import webdriver
import json

driver = webdriver.Chrome('path to chrome driver')
driver.get('https://shopee.tw/')

input() # 登入後再在 terminal 輸入任意字

cookie = driver.get_cookies() # get cookie

# 把 cookie 寫入檔案 (json 格式)
with open('cookie.json','w') as f:
    f.write(json.dumps(cookie))
這樣就取得 cookie 了。

使用 cookie

from selenium import webdriver
import json

driver = webdriver.Chrome('path to chrome driver')
driver.get('https://shopee.tw/')

with open('cookie.json','r') as f: # 讀入 cookie
    data=json.loads(f.read())

for c in data:
    driver.add_cookie(c) # 把 cookie 加進去

driver.refresh() # 重新整理
這樣就可以自動登入蝦皮。

自動領取蝦幣

from selenium import webdriver
import json

driver = webdriver.Chrome("path to chrome driver")

driver.get('https://shopee.tw/shopee-coins') # 領取蝦幣的網址

with open('cookie.json','r') as f:
    data=json.loads(f.read())
for c in data:
    driver.add_cookie(c)
driver.refresh()
這時候我們將網址改成: https://shopee.tw/shopee-coins ,接下來我們要點選領取蝦幣的按鈕。
我們可以按 F12 來取得網頁原始碼,在利用小箭頭選取按鈕,就可以找到相對應的原始碼。
我們可以看到這個按鈕的 class 是 pcmall-dailycheckin_3uUmyu,利用 webdriver 的 find_element 找到這個按鈕後再按下就可以領取蝦幣了。
from selenium import webdriver
from selenium.webdriver.common.by import By
import json

driver = webdriver.Chrome("path to chrome driver")

driver.get('https://shopee.tw/shopee-coins') # 領取蝦幣的網址

with open('cookie.json','r') as f:
    data=json.loads(f.read())
for c in data:
    driver.add_cookie(c)
driver.refresh()

button = driver.find_element(By.CLASS_NAME, 'pcmall-dailycheckin_3uUmyu') # 取得按鈕 (記得 import By)
button.click() # 按下按鈕

windows 工作排程器

最後一步,我們要讓程式自己定時執行,這裡介紹 windows 的 工作排程器,直接在搜尋欄位搜尋工作排程器,就可以找到了。
點選建立工作,輸入相關的資訊就大功告成了!

Reference

selenium:

取得cookie:

windows 排程: