iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

養爬蟲的人學爬蟲系列 第 25

【Day 25】想在Discord自動留言嗎?

  • 分享至 

  • xImage
  •  

閒聊
在進行的兩天的Instagram爬蟲之後,今天要來嘗試讓程式碼執行在Discord自動留言。

預期
將帳號、密碼存於 .env檔案中,執行程式後在指定伺服器和頻道發言。

實作
首先我們會需要使用dotenv這個套件來進行操作,安裝:

pip install python-dotenv

安裝好之後就可以建立一個.env檔,來存放帳號密碼。

email = '帳號'
password = '密碼'

再來就可以在Python中取得這些環境變數了!

from dotenv import load_dotenv
import os

load_dotenv()
emila = os.getenv('email')
password = os.getenv('password')

我們接下來可以開啟Discord,來看一下帳號、密碼的欄位。
https://ithelp.ithome.com.tw/upload/images/20221007/20145359g9A7aS5Gt0.png

知道欄位之後,就可以用Xpath、Selenium定位元素,並將資料用send_keys()傳入。
並且使用click點擊,進行登錄的動作。

from selenium import webdriver
from time import sleep
from dotenv import load_dotenv
import os
import json

load_dotenv()
emila = os.getenv('email')
password = os.getenv('password')

if __name__ == '__main__':
    with open('cookies_jar.json') as f:
        cookies = json.load(f)
    driver = webdriver.Chrome()
    driver.get('https://discord.com/channels/1027957761016877066/1027957761016877069')
    sleep(1)
    driver.find_element_by_xpath( '/html/body/div/div[2]/div/div/div/div/form/div/div/div[1]/div[2]/div[1]/div/div[2]/input').send_keys(email)
    driver.find_element_by_xpath(   '/html/body/div/div[2]/div/div/div/div/form/div/div/div[1]/div[2]/div[2]/div/input').send_keys(password)
    driver.find_element_by_xpath(
       '/html/body/div/div[2]/div/div/div/div/form/div/div/div[1]/div[2]/button[2]/div').click()
    sleep(4)
    driver.find_element_by_xpath( '/html/body/div[1]/div[2]/div/div[2]/div/div/div/div[2]/div[2]/div[2]/main/form/div[1]/div/div/div[1]/div/div[3]/div[2]/div').send_keys('嗨囉~\n')

結語
今天為了在Discord進行爬蟲,還特地去註冊帳號/images/emoticon/emoticon01.gif
不然在這之前,完全沒想過要來註冊。之後有空的話,好好來研究Discord。

明天!
【Day 26】用Postman儲存或測試API

參考資料
Discord:https://support.discord.com/hc/zh-tw


上一篇
【Day 24】將所有貼文都點讚吧!(實戰Selenium 1/2)
下一篇
【Day 26】用Postman儲存或測試API
系列文
養爬蟲的人學爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言