Hướng dẫn how to login with selenium python - cách đăng nhập bằng trăn selen

& nbsp; · 5 phút Đọc · Cập nhật tháng 7 năm 2022 · Xóa web · 5 min read · Updated jul 2022 · Web Scraping

Tiết lộ: Bài đăng này có thể chứa các liên kết liên kết, có nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi nhận được hoa hồng.: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.

Kiểm soát trình duyệt web từ một chương trình có thể hữu ích trong nhiều tình huống, các trường hợp sử dụng ví dụ là tự động hóa văn bản trang web và quét web, một khung rất phổ biến cho loại tự động hóa này là selenium webdriver.

Selenium WebDriver là một thư viện kiểm soát trình duyệt, nó hỗ trợ tất cả các trình duyệt chính (Firefox, Edge, Chrome, Safari, Opera, v.v.) và có sẵn cho các ngôn ngữ lập trình khác nhau bao gồm Python. Trong hướng dẫn này, chúng tôi sẽ sử dụng các ràng buộc Python của mình để tự động hóa đăng nhập vào các trang web.

Tự động hóa quá trình đăng nhập vào một trang web chứng tỏ là tiện dụng. Ví dụ: bạn có thể muốn chỉnh sửa cài đặt tài khoản của mình hoặc bạn muốn trích xuất một số thông tin yêu cầu đăng nhập, v.v.

Chúng tôi có một hướng dẫn về trích xuất các biểu mẫu web bằng thư viện đẹp, vì vậy bạn có thể muốn kết hợp các biểu mẫu đăng nhập và điền vào chúng với sự trợ giúp của hướng dẫn này.

Đầu tiên, hãy cài đặt selen cho Python:

pip3 install selenium

Bước tiếp theo là cài đặt trình điều khiển cụ thể cho trình duyệt mà chúng tôi muốn kiểm soát, các liên kết tải xuống có sẵn trên trang này. Tôi đang cài đặt crômedriver, nhưng bạn có thể sử dụng yêu thích của mình.

Để làm mọi thứ cụ thể, tôi sẽ sử dụng trang đăng nhập GitHub để chứng minh cách bạn có thể tự động đăng nhập bằng Selenium.

Mở một tập lệnh Python mới và khởi tạo WebDriver:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")

Sau khi bạn tải xuống và giải nén trình điều khiển cho hệ điều hành của bạn, hãy đặt nó vào thư mục hiện tại của bạn hoặc trên một đường dẫn đã biết, để bạn có thể chuyển nó đến lớp webdriver.Chrome(). Trong trường hợp của tôi, crômedriver.exe nằm trong thư mục hiện tại, vì vậy tôi chỉ cần chuyển tên của nó cho hàm tạo.chromedriver.exe is in the current directory, so I simply pass its name to the constructor.

Vì chúng tôi quan tâm đến việc tự động hóa thông tin đăng nhập GitHub, chúng tôi sẽ điều hướng đến trang đăng nhập & nbsp; GitHub và kiểm tra trang để xác định các yếu tố HTML của nó:

Hướng dẫn how to login with selenium python - cách đăng nhập bằng trăn selen
id của các trường đầu vào đăng nhập và mật khẩu và tên của nút Đăng nhập sẽ hữu ích cho chúng tôi để truy xuất các yếu tố này trong mã và chèn vào nó theo chương trình.

Lưu ý trường nhập tên người dùng/địa chỉ email có login_field id, trong đó trường nhập mật khẩu có id của

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
0, xem thêm nút gửi có
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
1 của Thông tin đăng nhập và nhấp vào nút:

# head to github login page
driver.get("https://github.com/login")
# find username/email field and send the username itself to the input field
driver.find_element_by_id("login_field").send_keys(username)
# find password input field and insert password as well
driver.find_element_by_id("password").send_keys(password)
# click login button
driver.find_element_by_name("commit").click()

Hàm

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
3 lấy phần tử HTML theo id và phương thức
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
5 mô phỏng Keypresses, ô mã trên sẽ tạo loại Chrome trong email và mật khẩu, sau đó nhấp vào nút Đăng nhập.

Điều tiếp theo cần làm là xác định xem đăng nhập của chúng tôi có thành công hay không, có rất nhiều cách để phát hiện điều đó, nhưng trong hướng dẫn này, chúng tôi sẽ thực hiện nó bằng cách phát hiện các lỗi đã hiển thị khi đăng nhập (tất nhiên, điều này sẽ thay đổi từ trang web cho người khác).

Hướng dẫn how to login with selenium python - cách đăng nhập bằng trăn selen
Hình ảnh trên cho thấy những gì xảy ra khi chúng ta chèn thông tin sai lệch, bạn sẽ thấy phần tử HTML
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
6 mới với lớp
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
7 có văn bản "Tên người dùng hoặc mật khẩu không chính xác."."Incorrect username or password.".

Mã dưới đây chịu trách nhiệm chờ đợi trang được tải sau khi đăng nhập được thực hiện bằng cách sử dụng

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
8 và kiểm tra lỗi:

# wait the ready state to be complete
WebDriverWait(driver=driver, timeout=10).until(
    lambda x: x.execute_script("return document.readyState === 'complete'")
)
error_message = "Incorrect username or password."
# get the errors (if there are)
errors = driver.find_elements_by_class_name("flash-error")
# print the errors optionally
# for e in errors:
#     print(e.text)
# if we find that error message within errors, then login is failed
if any(error_message in e.text for e in errors):
    print("[!] Login failed")
else:
    print("[+] Login successful")

Chúng tôi sử dụng WebDriverWait để đợi cho đến khi tài liệu hoàn thành tải, phương thức

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

# Github credentials
username = "username"
password = "password"

# initialize the Chrome driver
driver = webdriver.Chrome("chromedriver")
9 thực thi JavaScript trong bối cảnh trình duyệt, mã JS
# head to github login page
driver.get("https://github.com/login")
# find username/email field and send the username itself to the input field
driver.find_element_by_id("login_field").send_keys(username)
# find password input field and insert password as well
driver.find_element_by_id("password").send_keys(password)
# click login button
driver.find_element_by_name("commit").click()
0 trả về
# head to github login page
driver.get("https://github.com/login")
# find username/email field and send the username itself to the input field
driver.find_element_by_id("login_field").send_keys(username)
# find password input field and insert password as well
driver.find_element_by_id("password").send_keys(password)
# click login button
driver.find_element_by_name("commit").click()
1 khi trang được tải và
# head to github login page
driver.get("https://github.com/login")
# find username/email field and send the username itself to the input field
driver.find_element_by_id("login_field").send_keys(username)
# find password input field and insert password as well
driver.find_element_by_id("password").send_keys(password)
# click login button
driver.find_element_by_name("commit").click()
2 khác.

Cuối cùng, chúng tôi đóng tài xế của chúng tôi:

# close the driver
driver.close()

Sự kết luận

Được rồi, bây giờ bạn có kỹ năng đăng nhập tự động vào trang web bạn chọn, lưu ý rằng GitHub sẽ chặn bạn khi bạn chạy tập lệnh nhiều lần với thông tin sai, vì vậy hãy nhận biết điều đó.

Bây giờ bạn có thể làm điều bạn muốn làm sau khi đăng nhập bằng tài khoản của mình, bạn có thể thêm mã trong dòng nơi chúng tôi đang in 'Đăng nhập thành công'.'Login successful'.

Ngoài ra, nếu bạn đã đăng nhập thành công bằng cách sử dụng tài khoản thực của mình, bạn có thể gặp phải xác nhận email, để bỏ qua điều đó, bạn phải đọc email của mình bằng Python và trích xuất mã xác nhận và chèn nó trong thời gian thực bằng Selenium, tuyệt vời Thử thách, phải không? Chúc may mắn với điều đó!

Cuối cùng, nếu bạn là người mới bắt đầu và muốn học Python, tôi khuyên bạn nên tham gia khóa học & nbsp; Python cho mọi người Coursera, trong đó bạn sẽ tìm hiểu rất nhiều về Python. Bạn cũng có thể kiểm tra trang & NBSP; Tài nguyên và khóa học của chúng tôi & nbsp; để xem tài nguyên Python tôi đề xuất về các chủ đề khác nhau!

Kiểm tra mã đầy đủ ở đây.

Tìm hiểu thêm: Cách sử dụng API GitHub trong Python. How to Use Github API in Python.

Chúc mừng tự động hóa ♥

Xem đầy đủ mã


Cũng đọc



Bảng bình luận

Làm thế nào để bạn tự động hóa một đăng nhập trong Python?

Các bước sau đây sẽ được thực hiện bằng Python và Selenium ...
Nhập thư viện ..
Tạo các biến cho thông tin đăng nhập ..
Cài đặt trình điều khiển web ..
Khởi chạy trình duyệt và mở URL ..
Nhập thông tin đăng nhập và đăng nhập ..
Xác minh trạng thái đăng nhập ..

Làm cách nào để đăng nhập vào trang web của mình bằng selenium?

Đăng nhập Tự động hóa bằng Selenium WebDriver..
Bước 1: Khởi chạy trang web Lambdatest. (...
Bước 2: Nhấp vào Đăng nhập ..
Bước 3: Nhập email và mật khẩu hợp lệ ..
Bước 4: Nhấp vào nút Đăng nhập ..
Bước 5: Xác minh tiêu đề của trang để đảm bảo rằng người dùng đã đăng nhập thành công vào trang web ..
Chrome..
Firefox..

Làm cách nào để truy cập Python trong selenium?

Làm cách nào để nhấn enter trong selen bằng python ?..
Sử dụng chìa khóa. Nhập: Từ selen. WebDriver. phổ thông. Chìa khóa Nhập Keys Trình điều khiển. find_element_by_id ("Element_id"). send_keys (khóa. Enter).
Sử dụng chìa khóa. Trở lại: Từ selen. WebDriver. phổ thông. Chìa khóa Nhập Keys Trình điều khiển. find_element_by_id ("Element_id"). send_keys (khóa. return).

Làm thế nào để bạn cạo một trang web yêu cầu đăng nhập với Python selenium?

Làm thế nào để bạn cạo một trang web yêu cầu đăng nhập với Python selenium ?..
Bước 1 - Cài đặt và nhập khẩu.pip cài đặt selen ..
Bước 2 - Cài đặt và truy cập WebDriver.....
Bước 3 - Trang web truy cập qua Python ..
Bước 4, định vị thông tin cụ thể mà bạn đang cạo ..
Bước 5 - Áp dụng cho mỗi năm có sẵn và gắn kết mọi thứ lại với nhau ..