วิธีการสร้าง Bot ล็อกอินอัตโนมัติอย่างง่ายด้วย Python และ Selenium
การทำงานอัตโนมัติ ไม่ต้องสงสัยเลยว่าเป็นหนึ่งในทักษะที่โลภมากที่สุดที่โปรแกรมเมอร์สามารถมีได้ ระบบอัตโนมัติมักใช้สำหรับงานที่ต้องทำ ซ้ำ, น่าเบื่อ, ใช้เวลานาน, หรืออย่างอื่น ไม่มีประสิทธิภาพ โดยไม่ต้องใช้สคริปต์.
กับ เว็บอัตโนมัติ, คุณสามารถได้อย่างง่ายดาย สร้างบอทเพื่อทำงานต่าง ๆ บนเว็บเช่นการตรวจสอบอัตราการแข่งขันของโรงแรมผ่านอินเทอร์เน็ตและกำหนดราคาที่ดีที่สุด.
ส่วนตัวฉันได้พบเสมอ เข้าสู่ระบบอีเมลของฉัน ค่อนข้างซ้ำซากและน่าเบื่อดังนั้นเพื่อเป็นตัวอย่างง่ายๆให้กับพวกคุณ เริ่มต้นด้วยการทำงานอัตโนมัติบนเว็บ, มาใช้กัน สคริปต์ Python อัตโนมัติ ไปยัง เข้าสู่ระบบด้วยคลิกเดียว ไปยังบัญชี Gmail.
การติดตั้งและตั้งค่า
ในบทช่วยสอนนี้เราจะใช้ เครื่องมือดังต่อไปนี้:
- ภาษาโปรแกรมไพ ธ อน
- เบราว์เซอร์ Google Chrome
- ชุดเครื่องมือเบราว์เซอร์อัตโนมัติซีลีเนียม
- โปรแกรมควบคุมเว็บไดรเวอร์ Chrome สำหรับ Chrome
สำหรับโปรแกรมของเราเราจะใช้ภาษาการเขียนโปรแกรม Python โดยเฉพาะ รุ่น 2.7.11. เป็นสิ่งสำคัญที่เราจะต้องติดตั้ง Python 2 เวอร์ชั่นใหม่ที่เป็นธรรม เพราะมันมาพร้อมกับ PIP, ซึ่งจะทำให้เราสามารถติดตั้งแพ็คเกจและกรอบงานของบุคคลที่สามซึ่งเราจะต้องทำให้สคริปต์ของเราเป็นแบบอัตโนมัติ.
เมื่อติดตั้งแล้ว, รีสตาร์ทคอมพิวเตอร์ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล ใช้คำสั่ง pip การติดตั้งซีลีเนียม
เพื่อเพิ่ม ชุดเครื่องมืออัตโนมัติเว็บซีลีเนียม ถึง Python ซีลีเนียมจะช่วยให้เราเลื่อนโปรแกรมคัดลอกข้อความกรอกแบบฟอร์มและคลิกปุ่ม.
ในที่สุดก็ดาวน์โหลด ซีลีเนียม Chrome ไดร์เวอร์ปฏิบัติการ, ซึ่งจะ เปิด Google Chrome ตามที่จำเป็นในการทำงานอัตโนมัติของเรา ไดรเวอร์ Chrome เป็นเพียงวิธีในการเปิด Google Chrome (ซึ่งควรติดตั้งไว้แล้ว) เพื่อ เข้าถึงการทำงานของเบราว์เซอร์มาตรฐานโดยทางโปรแกรม.
เพียงดาวน์โหลดไฟล์ ZIP ล่าสุดจากที่นี่แยกไฟล์ chromedriver.exe
ปฏิบัติการและวางไฟล์ปฏิบัติการในไดเรกทอรีใด ๆ ตรวจสอบให้แน่ใจว่าได้จดบันทึกว่าไฟล์ปฏิบัติการของคุณอยู่ที่ใดเพราะ เราจะต้องการมันเมื่อเราเริ่มต้น.
เริ่มต้นโปรแกรม
ดังที่กล่าวมาเราจะใช้ เฟรมเวิร์กระบบอัตโนมัติบนเว็บซีลีเนียม เพื่อที่จะ เข้าสู่ระบบโดยทางโปรแกรม. ลำดับแรกของธุรกิจคือการ นำเข้าทุกโมดูล เราจะต้องการจากไลบรารี Selenium Python ที่เราติดตั้ง ealier ด้วย PIP.
ลองเปิด IDLE หรือโปรแกรมแก้ไขรหัสอื่น, สร้างไฟล์ Python ใหม่ กับ .PY
ส่วนขยายและ นำเข้าโมดูลต่อไปนี้:
จาก selenium นำเข้า webdriver จาก selenium.webdriver.common.by นำเข้าโดยจาก selenium.webdriver.support.ui นำเข้า WebDriverWait จาก selenium.webdriver.support นำเข้าที่คาดหวังเป็น EC
ต่อไปเราจะ สร้างสองสาย นั่นเป็นตัวแทนของเรา ชื่อผู้ใช้และรหัสผ่าน สำหรับบัญชีอีเมล ใส่ใจกับการใช้อักษรตัวใหญ่โดยเฉพาะในสตริงรหัสผ่านของคุณ.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
ตอนนี้เรามีทุกอย่างที่ตั้งค่าเพื่อเริ่มต้นกระบวนการเข้าสู่ระบบเราต้องสั่งให้หน้าต่างเบราว์เซอร์เป็นจริง เปิด Google Chrome, และ นำทางไปยังหน้าเข้าสู่ระบบของ Gmail.
หากคุณยังไม่ได้ดำเนินการตรวจสอบให้แน่ใจว่าสคริปต์ Python ของคุณเป็นแบบนั้น บันทึกไว้ในตำแหน่งเดียวกับ chromedriver.exe
ปฏิบัติการ เราแยกก่อนหน้านี้.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin? "บริการ = จดหมาย & ดำเนินการต่อ = https: //mail.google" .com / mail / # identifier'))
ค้นหาองค์ประกอบของเรา
เราประสบความสำเร็จในการเปิดเบราว์เซอร์ Gmail แต่ตอนนี้เราต้องการ ค้นหาช่องใส่ บนหน้าเว็บที่เราสามารถทำได้ ป้อนชื่อผู้ใช้และรหัสผ่านของเรา.
เราสามารถทำได้โดยใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในตัว เราเพียงคลิกขวาที่ช่องป้อนข้อมูลและเลือก “ตรวจ” เมนู.
ตอนนี้มันเป็นเพียงเรื่องของ ใช้ HTML รหัส
แอตทริบิวต์ เพื่อค้นหาองค์ประกอบโดยทางโปรแกรม.
ในรหัสด้านล่างเราเป็นเพียงแค่ ค้นหาช่องใส่ชื่อผู้ใช้โดย รหัส
, และ เติมมัน ด้วยข้อความที่ต้องการ ถ้าอย่างนั้นเราก็ ค้นหาปุ่มถัดไป การเปลี่ยนผ่านที่มีภาพเคลื่อนไหวอย่างรวดเร็วก่อนที่จะขอรหัสผ่านให้เรา.
send_keys ()
และ คลิก()
คำสั่งทำตามที่ชื่อแนะนำ - send_keys ()
จำลองการกดปุ่ม ในองค์ประกอบที่ต้องการและ คลิก()
จำลองการคลิกเมาส์.
# กรอกชื่อผู้ใช้และกดปุ่มชื่อผู้ใช้ถัดไป = browser.find_element_by_id ('อีเมล') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('ถัดไป') nextButton.click ()
เราทำได้ ทำสิ่งเดียวกัน สำหรับช่องป้อนรหัสผ่านเช่นเดียวกับปุ่มลงชื่อเข้าใช้ อย่างไรก็ตามทั้งสองรายการจะปรากฏบนหน้า เท่านั้น หลังจาก การเปลี่ยนภาพเคลื่อนไหว.
ที่กล่าวว่าเราต้องการโปรแกรมเพื่อ รอสักครู่ ก่อนที่จะดำเนินการค้นหาองค์ประกอบต่อ ส่วนใหญ่ขั้นตอนของรหัสนี้ไม่แตกต่างจากรหัสก่อนหน้า เราเพียงแค่ต้องแนะนำเบราว์เซอร์ให้ รอสูงสุด 10 วินาที ก่อนค้นหารายการรหัสผ่าน.
# รอการเปลี่ยนจากนั้นให้กรอกรหัสผ่านรายการ = WebDriverWait (เบราว์เซอร์ 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_ (ลงชื่อเข้าใช้ '' ) signInButton.click ()
คำพูดสุดท้าย
คุณทำเสร็จแล้ว สร้างบอท ที่เข้าชมหน้าเว็บป้อนชื่อผู้ใช้และรหัสผ่านของคุณและลงชื่อเข้าใช้สำเร็จ, ทำให้กระบวนการทั้งหมดเป็นไปโดยอัตโนมัติ เพื่อคลิกเดียว ฉันรู้ว่านี่เป็นการสาธิตง่ายๆ แต่ความเป็นไปได้ไม่มีที่สิ้นสุด.
บนโน้ตตัวเดียวกันนั้น, ระวัง คุณใช้ทักษะนี้อย่างไร บางคนใช้บ็อตและสคริปต์อัตโนมัติเพื่อเข้าสู่การชิงโชคเป็นพัน ๆ ครั้งโดยไม่คำนึงถึงข้อกำหนดและเงื่อนไข บางคนใช้พวกเขาเพื่อจุดประสงค์ที่เป็นอันตรายเพิ่มเติม.
เพียงให้แน่ใจว่าได้ใช้ระบบอัตโนมัติอย่างมีวัตถุประสงค์และอย่างระมัดระวังเพราะมันเป็น ทักษะที่จำเป็นมาก ในชุมชนการเขียนโปรแกรม!
หมายเหตุจากบรรณาธิการ: นี่คือโพสต์ที่เขียนขึ้นสำหรับ Hongkiat.com โดย Malik Brahimi. Malik เป็นนักพัฒนาซอฟต์แวร์ที่ตั้งอยู่ในเขต Greater Boston และชอบอาหารฟุตบอลและการเขียนโปรแกรม (ภาษาที่ชื่นชอบ Python).
- แหล่งดาวน์โหลด