Bagaimana Membina Bot Auto Masuk Mudah dengan Python dan Selenium
Automasi sudah pasti salah satu kemahiran yang paling didambakan oleh seorang programmer. Automasi biasanya digunakan untuk tugas-tugas yang ada berulang, membosankan, memakan masa, atau sebaliknya tidak cekap tanpa menggunakan skrip.
Dengan automasi web, anda boleh dengan mudah buat bot untuk melaksanakan tugas yang berbeza di web, contohnya untuk memantau kadar hotel yang bersaing di Internet dan menentukan harga terbaik.
Secara peribadi, saya selalu jumpa melog masuk ke e-mel saya cukup berulang-ulang dan membosankan, jadi demi contoh mudah untuk mendapatkan kalian bermula dengan automasi web, mari kita laksanakan skrip Python automatik kepada log masuk dengan satu klik ke akaun Gmail.
Pemasangan dan Persediaan
Dalam tutorial ini kita akan menggunakannya alat berikut:
- Bahasa pengaturcaraan Python
- Pelayar Google Chrome
- Toolkit automasi penyemak imbas Selenium
- Pemandu web Pemandu Chrome untuk Chrome
Untuk program kami, kami akan menggunakan bahasa pengaturcaraan Python, khususnya versi 2.7.11. Adalah penting bahawa kita memasang versi Python 2 yang baru kerana ia datang dengan PIP, yang akan membolehkan kami memasang pakej dan kerangka pihak ketiga yang perlu kami mengautomasikan skrip kami.
Setelah dipasang, mulakan semula komputer anda untuk perubahan yang berlaku. Gunakan arahan paip memasang selenium
untuk menambah Toolkit automasi web Selenium kepada Python. Selenium akan membolehkan kita tatal secara berkala, menyalin teks, mengisi borang dan butang klik.
Akhirnya muat turun Pemandu Chrome Selenium boleh laksana, yang akan buka Google Chrome seperti yang diperlukan untuk melaksanakan tugasan automatik kami. Pemandu Chrome hanyalah satu cara untuk membuka Google Chrome (yang sepatutnya dipasang) akses operasi penyemak imbas standard secara pemrograman.
Cuma muat turun fail ZIP terbaru dari sini, ekstrak chromedriver.exe
boleh laku, dan letakkan laku di mana-mana direktori. Pastikan anda memberi perhatian di mana boleh laku anda, kerana kami akan memerlukannya sebaik sahaja kami memulakannya.
Memulakan Program
Seperti yang dinyatakan di atas, kami akan menggunakan Kerangka automasi web selenium untuk log masuk secara pemprograman. Perintah pertama perniagaan adalah import setiap modul kami akan memerlukan dari perpustakaan Python Selenium yang kami pasangkan dengan PIP.
Mari buka IDLE atau editor kod lain, buat fail Python baru dengan .py
lanjutan, dan import modul berikut:
dari selenium import webdriver dari selenium.webdriver.common.by import Oleh dari selenium.webdriver.support.ui import WebDriverWait dari selenium.webdriver.support import expected_conditions as EC
Seterusnya, kami akan buat dua tali yang mewakili kita nama pengguna dan kata laluan untuk akaun e-mel. Perhatikan permodalan, terutamanya dalam rentetan kata laluan anda.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Sekarang kita mempunyai segala-galanya yang ditetapkan untuk memulakan proses log masuk, kita perlu menginstruksikan tetingkap penyemak imbas buka Google Chrome, dan navigasi ke halaman log masuk Gmail.
Jika anda belum melakukannya, pastikan skrip Python anda disimpan di lokasi yang sama dengan chromedriver.exe
boleh laku kami diekstrak sebelum ini.
browser = webdriver.Chrome () browser.get ('service https://accounts.google.com/ServiceLogin ?, service = mail & continue = https: //mail.google ".com / mail / # identifier'))
Mencari Elemen Kita
Kami telah berjaya membuka penyemak imbas untuk membuka Gmail, tetapi kini kami perlu cari medan input di laman web, ke mana kita boleh masukkan nama pengguna dan kata laluan kami.
Kita boleh melakukannya dengan mudah menggunakan Alat Pembangun Chrome terbina dalam. Kami hanya perlu klik kanan pada medan input, dan pilih “Periksa” menu.
Kini ia hanya satu perkara menggunakan HTML ID
sifat-sifatnya untuk mencari unsur-unsur secara programatik.
Dalam kod di bawah, kita semata-mata mencari medan input nama pengguna dengan ID
, dan mengisi ia dengan teks yang dikehendaki. Kemudian kami mencari butang Seterusnya yang peralihan dengan animasi cepat sebelum mendorong kita untuk kata laluan.
The send_keys ()
dan klik ()
perintah lakukan dengan tepat seperti yang dicadangkan oleh nama mereka - send_keys ()
menyimulasikan kekunci dalam elemen yang dikehendaki, dan klik ()
menyimulasikan klik mouse.
# isi nama pengguna dan tekan nama pengguna yang akan datang = browser.find_element_by_id ('Email') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Kita boleh lakukan perkara yang sama untuk medan input kata laluan, serta untuk butang Log masuk. Walau bagaimanapun, kedua-dua perkara ini muncul di halaman sahaja selepas peralihan animasi.
Yang berkata, kita memerlukan program ini tunggu beberapa saat sebelum meneruskan pencarian unsur-unsur. Untuk sebahagian besar, tahap kod ini tidak berbeza dari sebelumnya. Kami hanya perlu mengarahkan pelayar ke tunggu maksimum 10 saat sebelum mencari kemasukan kata laluan.
# tunggu peralihan kemudian terus mengisi kata laluan kata laluan = WebDriverWait (pelayar, 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id ('signIn' ) signInButton.click ()
Perkataan Akhir
Anda baru saja selesai mencipta bot yang melawat halaman web, memasuki nama pengguna dan kata laluan anda, dan berjaya melog masuk anda, mengautomasikan keseluruhan proses untuk satu klik. Saya tahu ini adalah satu demonstrasi yang mudah, tetapi kemungkinan tidak berkesudahan.
Pada nota yang sama, berhati-hati bagaimana anda menggunakan kemahiran ini. Sesetengah orang menggunakan bot dan skrip automatik untuk memasuki undian beribu kali, dengan syarat dan syarat yang tidak betul. Orang lain menggunakannya untuk tujuan yang lebih berniat jahat.
Pastikan anda menggunakan automasi dengan sengaja dan berhati-hati, kerana ia benar-benar adalah kemahiran yang sangat diperlukan dalam komuniti pengaturcaraan!
Nota editor: Ini adalah catatan yang ditulis untuk Hongkiat.com oleh Malik Brahimi. Malik adalah pemaju yang terletak di kawasan Greater Boston, dan suka makanan, bola sepak, dan pengaturcaraan (bahasa kegemaran Python).
- Muat turun Sumber