# การ Automate การเข้าสู่ระบบ Facebook และโพสต์ข้อความบนผนังด้วย Python และ Selenium
ในโลกที่เทคโนโลยีมีพัฒนาการที่รวดเร็ว การทำงานซ้ำๆ ที่เคยต้องทำด้วยมือก็เริ่มถูกแทนที่ด้วยการ automate หนึ่งในเครื่องมือที่เป็นที่นิยมสำหรับการ automate operations บนเว็บคือ Selenium, ซึ่งเป็นเฟรมเวิร์กสำหรับ Testing และ Automating web applications. เมื่อผสานกับ Python ซึ่งเป็นภาษาที่โค้ดอ่านง่ายและมี library ที่หลากหลาย เราสามารถสร้าง script ที่เข้าสู่ระบบ Facebook และโพสต์ข้อความบนผนังได้โดยอัตโนมัติได้อย่างง่ายดาย
ก่อนที่เราจะก้าวไปสู่ส่วนที่เป็นโค้ดของ Selenium, เราควรทำความเข้าใจก่อนว่า การ Automate การเข้าใช้งานบัญชี Facebook อาจเป็นการละเมิดเงื่อนไขบริการของ Facebook และอาจนำไปสู่การถูกระงับหรือบล็อกบัญชี การใช้บทความนี้เพื่อทำการ Automate บางอย่างใน Facebook ควรทำด้วยความระมัดระวังและเพื่อวัตถุประสงค์ในการเรียนรู้เท่านั้น
ก่อนอื่นเราต้องติดตั้ง Selenium และ WebDriver ที่สอดคล้องกับเบราว์เซอร์ที่เราต้องการใช้ (เช่น Chrome, Firefox):
pip install selenium
Firefox มี GeckoDriver และ Chrome มี ChromeDriver ซึ่งเป็นส่วนประกอบที่ต้องมีเพื่อให้ Selenium สามารถควบคุมเบราว์เซอร์ได้
นี่คือขั้นตอนในการเขียน script Python ใช้ Selenium เพื่อ login เข้าสู่ระบบ Facebook:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
# กำหนดพารามิเตอร์สำหรับเข้าสู่ระบบ
username = "your_username"
password = "your_password"
# สร้าง instance ของ WebDriver และเปิดหน้าเว็บ Facebook login
driver = webdriver.Firefox() # หรือ webdriver.Chrome() ถ้าใช้ Chrome
driver.get("https://www.facebook.com")
# ค้นหา field สำหรับใส่ username และ password
username_field = driver.find_element_by_id("email")
password_field = driver.find_element_by_id("pass")
# ใส่ข้อมูลเข้าสู่ระบบ
username_field.send_keys(username)
password_field.send_keys(password)
# ทำการคลิกเพื่อ login
password_field.send_keys(Keys.RETURN)
# หน่วงเวลาเพื่อรอให้หน้าเว็บโหลดเสร็จ
sleep(5)
หลังจาก login เสร็จแล้ว, เราสามารถใช้ Selenium เพื่อค้นหา field โพสต์ข้อความและส่งข้อความไปยัง Facebook wall ดังนี้:
# ค้นหา field สำหรับเขียนโพสต์
post_box = driver.find_element_by_xpath("//*[contains(@aria-label, 'What\'s on your mind')]")
# คลิกเพื่อเข้าไปในหน้าต่างโพสต์
post_box.click()
# หน่วงเวลาเพื่อรอให้ field โพสต์ข้อความพร้อมใช้งาน
sleep(5)
# ค้นหา field และป้อนข้อความที่ต้องการโพสต์
post_field = driver.find_element_by_xpath("//textarea[contains(@class, 'uiTextareaNoResize')]")
post_field.send_keys("Hello, this is an automated post from Selenium. #learning")
# คลิกเพื่อโพสต์
post_button = driver.find_element_by_xpath("//button[contains(@data-testid,'react-composer-post-button')]")
post_button.click()
# หน่วงเวลาเพื่อให้โพสต์ปรากฏบน wall
sleep(5)
# ปิดเบราว์เซอร์
driver.quit()
โปรดทราบว่า XPath หรือตัวชี้ของ elements บนเว็บไซต์อาจมีการเปลี่ยนแปลงตามเวลาและอัปเดตรูปแบบของ Facebook ตรวจสอบให้แน่ใจว่า XPath นั้นถูกต้องและใช้งานได้กับเวอร์ชั่นปัจจุบันของ Facebook เวลาที่คุณทดลอง -*-
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM