Cách xây dựng Bot đăng nhập tự động đơn giản với Python và Selenium
Tự động hóa chắc chắn là một trong những kỹ năng được khao khát nhất mà một lập trình viên có thể sở hữu. Tự động hóa thường được sử dụng cho các nhiệm vụ lặp đi lặp lại, nhàm chán, tốn thời gian, hay nói cách khác không hiệu quả không sử dụng tập lệnh.
Với tự động hóa web, bạn co thể dê dang tạo một bot để thực hiện các nhiệm vụ khác nhau trên web, ví dụ để theo dõi giá khách sạn cạnh tranh trên Internet và xác định giá tốt nhất.
Cá nhân tôi luôn tìm thấy đăng nhập vào email của tôi khá lặp đi lặp lại và nhàm chán, vì vậy, vì một ví dụ đơn giản để có được các bạn bắt đầu với tự động hóa web, hãy thực hiện một tập lệnh Python tự động đến đăng nhập bằng một cú nhấp chuột vào tài khoản Gmail.
Cài đặt và cài đặt
Trong hướng dẫn này, chúng tôi sẽ sử dụng công cụ sau đây:
- Ngôn ngữ lập trình Python
- Trình duyệt Google Chrome
- Bộ công cụ tự động hóa trình duyệt Selenium
- Trình điều khiển web Chrome Driver cho Chrome
Đối với chương trình của chúng tôi, chúng tôi sẽ sử dụng ngôn ngữ lập trình Python, cụ thể là phiên bản 2.7.11. Điều quan trọng là chúng tôi cài đặt một phiên bản khá mới của Python 2 bởi vì nó đi kèm với PIP, sẽ cho phép chúng tôi cài đặt các gói và khung của bên thứ ba mà chúng tôi sẽ cần để tự động hóa các tập lệnh của chúng tôi.
Một lần được cài đặt, khởi động lại máy tính của bạn để những thay đổi có hiệu lực. Sử dụng lệnh lắp đặt selen
để thêm Bộ công cụ tự động hóa web Selenium tới Python. Selenium sẽ cho phép chúng ta cuộn chương trình, sao chép văn bản, điền vào biểu mẫu và nhấp vào nút.
Cuối cùng tải xuống Trình điều khiển Selenium Chrome thực thi, cái nào sẽ mở Google Chrome khi cần thiết để thực hiện các nhiệm vụ tự động của chúng tôi. Trình điều khiển Chrome chỉ đơn giản là một cách để mở Google Chrome (đã được cài đặt) để truy cập các hoạt động trình duyệt tiêu chuẩn theo chương trình.
Chỉ cần tải xuống tệp ZIP gần đây nhất từ đây, giải nén chromedriver.exe
thực thi và đặt thực thi trong bất kỳ thư mục. Hãy chắc chắn để ghi chú về nơi thực thi của bạn, bởi vì chúng ta sẽ cần nó khi chúng ta bắt đầu.
Bắt đầu chương trình
Như đã nói ở trên, chúng tôi sẽ sử dụng Khung tự động hóa web Selenium để mà đăng nhập bằng lập trình. Đơn hàng đầu tiên của doanh nghiệp là nhập mọi mô-đun chúng tôi sẽ cần từ thư viện Selenium Python mà chúng tôi đã cài đặt ealier với PIP.
Hãy mở IDLE hoặc trình chỉnh sửa mã khác, tạo một tệp Python mới với .py
mở rộng, và nhập các mô-đun sau:
từ selenium nhập webdo từ selenium.webdo.common.by nhập bởi từ selenium.webdo.support.ui nhập WebDriverWait từ selenium.webdo.support nhập dự kiến_conditions như EC
Tiếp theo, chúng tôi sẽ tạo hai chuỗi đại diện cho chúng ta tên người dùng và mật khẩu cho tài khoản email. Hãy chú ý đến viết hoa, đặc biệt là trong chuỗi mật khẩu của bạn.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Bây giờ chúng tôi đã thiết lập mọi thứ để bắt đầu quá trình đăng nhập, chúng tôi thực sự cần phải hướng dẫn một cửa sổ trình duyệt để mở Google Chrome, và điều hướng đến trang đăng nhập của Gmail.
Nếu bạn chưa làm như vậy, hãy đảm bảo tập lệnh Python của bạn là lưu ở cùng vị trí với chromedriver.exe
thực thi chúng tôi đã trích xuất trước đó.
browser = webdo.Chrom () browser.get (('https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # định danh'))
Tìm kiếm yếu tố của chúng tôi
Chúng tôi đã thành công trong việc mở trình duyệt để mở Gmail, nhưng bây giờ chúng tôi cần phải tìm các trường đầu vào trên trang web, trong đó chúng ta có thể nhập tên người dùng và mật khẩu của chúng tôi.
Chúng tôi có thể thực hiện việc này một cách dễ dàng bằng Công cụ dành cho nhà phát triển Chrome tích hợp. Chúng ta chỉ cần nhấp chuột phải vào các trường đầu vào và chọn “Thanh tra” thực đơn.
Bây giờ chỉ là vấn đề sử dụng HTML ID
thuộc tính để tìm các yếu tố lập trình.
Trong mã dưới đây, chúng tôi chỉ đơn giản là tìm kiếm trường nhập tên người dùng bằng ID
, và làm đầy nó với văn bản mong muốn. Rồi chúng ta tìm kiếm nút tiếp theo chuyển tiếp với một hình ảnh động nhanh trước khi nhắc chúng tôi nhập mật khẩu.
Các send_key ()
và nhấp chuột()
các lệnh làm chính xác như tên của chúng gợi ý - send_key ()
mô phỏng nhấn phím trong phần tử mong muốn và nhấp chuột()
mô phỏng một cú click chuột.
# điền tên người dùng và nhấn nút tiếp theo tên người dùng = browser.find_element_by_id ('Email') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Chúng ta có thể Làm điều tương tự cho trường nhập mật khẩu, cũng như cho nút Đăng nhập. Tuy nhiên, hai mục này xuất hiện trên trang chỉ có sau một chuyển tiếp hoạt hình.
Điều đó nói rằng, chúng tôi cần chương trình để chờ vài giây trước khi tiếp tục tìm kiếm các yếu tố. Đối với hầu hết các phần, giai đoạn mã này không khác với giai đoạn trước. Chúng tôi chỉ cần hướng dẫn trình duyệt chờ tối đa 10 giây trước khi xác định vị trí nhập mật khẩu.
# chờ chuyển đổi, sau đó tiếp tục điền vào các mục password = WebDriverWait (trình duyệt, 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.f__ ) đăng nhậpButton.click ()
Từ cuối cùng
Bạn vừa hoàn thành tạo bot truy cập một trang web, nhập tên người dùng và mật khẩu của bạn và đăng nhập thành công cho bạn, tự động hóa toàn bộ quá trình chỉ với một cú nhấp chuột. Tôi biết đây là một minh chứng đơn giản, nhưng khả năng là vô tận.
Trên cùng một lưu ý, hãy cẩn thận về cách bạn sử dụng kỹ năng này. Một số người sử dụng bot và tập lệnh tự động để tham gia rút thăm trúng thưởng hàng ngàn lần, hoàn toàn không quan tâm đến các điều khoản và điều kiện. Những người khác sử dụng chúng cho mục đích độc hại hơn.
Chỉ cần chắc chắn sử dụng tự động hóa có chủ đích và cẩn thận, bởi vì nó thực sự là một kỹ năng rất cần thiết trong cộng đồng lập trình!
Ghi chú của biên tập viên: Đây là một bài viết cho Hongkiat.com bởi Malik Brahimi. Malik là một nhà phát triển ở khu vực Greater Boston, và yêu thích ẩm thực, bóng đá và lập trình (ngôn ngữ yêu thích Python).
- Tải xuống nguồn