Ví dụ python-selenium github

Hề lố… Như anh thấy đấy em đã bỏ bê cái blog này vài tháng rồi cũng được. Lý do thì đơn giản vì tôi quá tài giỏi. Nhiều bài mới viết cái tiêu đề xong xuôi để đấy. Cho đến hôm nay làm quá rảnh vì phải cách ly ở nhà nên tôi quyết tâm đăng bài trở lại. Ok vào làm việc

Việc thực hiện mọi hành động một cách tự động trên một trang web thực sự thú vị và hữu dụng trong một số trường hợp. Ví dụ như bạn có thể thực hiện một loạt thao tác đạp chán lặp đi lặp lại dưới dạng biểu mẫu hoặc tự động cuộn khi đọc truyện không có hạn. Nhiều khi bạn muốn lấy thông tin của một loạt bài viết trên một trang web. Có một công cụ rất phổ biến sẽ giúp bạn tự động nhưng hành động này là Selenium WebDriver

Ví dụ python-selenium github

Tự động hóa quá trình đăng nhập vào một trang web hiển thị hữu ích. Ví dụ. bạn có thể muốn tự động 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

Mục Lục

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

[mã lang=”trăn”]
cài đặt selen pip3
[/mã số]

Tiếp theo chúng ta cần phải tải xuống ChromeDriver

Thực ra bạn có thể sử dụng cả FireFox nhưng mình thích sử dụng Chrome hơn. You can down it at here. Nhớ chọn đúng phiên bản giống với bản chrome bạn đang dùng nhé

Để ví dụ cụ thể hơn mình sẽ đăng nhập tự động đăng nhập vào trang github nhé. Ok giờ tạo một tập tin. py mới với bất kỳ tân cổ điển và nhập vào những đồ ta cần sử dụng

[mã lang=”trăn”]
từ Selenium nhập webdriver
từ selen. webdriver. ủng hộ. giao diện người dùng nhập WebDriverWait

tên người dùng = "tên người dùng"
mật khẩu = "mật khẩu"
# khởi chạy trình điều khiển Chrome
trình điều khiển = webdriver. Chrome("trình điều khiển chrome")
[/mã số]

 

Sau khi bạn tải xuống và giải nén, hãy đặt nó vào thư mục hiện tại của bạn. Trong trường hợp của tôi, chromedriver. 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ó để tạo hàm

Vì chúng ta quan tâm đến việc tự động hóa đăng nhập Github. Chúng ta sẽ điều hướng đến trang đăng nhập Github và kiểm tra trang để xác định các phần tử HTML của nó

Ví dụ python-selenium github

Ở đây chúng ta có thể thấy id của các ô đầu vào mà chúng ta vẫn nhập nó bằng tay như mọi lần. Cụ thể là ô tên người dùng có id là login_fieldô mật khẩu có id là password và cái nút sign in kia ko có id  chúng ta có thể dùng theo name commit :

[mã lang=”trăn”]
# đi đến trang đăng nhập github
tài xế. nhận ("https. //github. com/đăng nhập")
# tìm trường tên người dùng/email và gửi chính tên người dùng đến trường nhập liệu
tài xế. find_element_by_id("login_field"). send_keys(tên người dùng)
# tìm trường nhập mật khẩu và chèn cả mật khẩu
tài xế. find_element_by_id("mật khẩu"). send_keys(mật khẩu)
# nhấn nút đăng nhập
tài xế. find_element_by_name("cam kết"). nhấp chuột()
[/mã số]

Hàm find_element_by_id () truy xuất một phần tử HTML theo id của nó và phương thức send_keys . mô phỏng các lần nhấn phím, ô mã trên sẽ khiến Chrome nhập 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ận xem đăng nhập của chúng ta có thành công hay không

Có rất nhiều cách để phát hiện điều đó, nhưng theo hướng dẫn này, chúng tôi sẽ thực hiện bằng cách phát hiện các lỗi hiển thị khi đăng nhập

Ví dụ python-selenium github

Như chúng ta thấy điều gì đó sẽ xảy ra khi chúng ta chèn sai thông tin đăng nhập, bạn sẽ thấy một phần tử div HTML mới với lớp học

1

"flash-error"

có nội dung là “Tên người dùng hoặc mật khẩu không chính xác”

Đoạn mã dưới đây chịu trách nhiệm đợi trang được tải xuống sau khi thực hiện đăng nhập bằng WebDriverWait() và kiểm tra lỗi

[mã lang=”trăn”]
# đợi trạng thái sẵn sàng hoàn tất
WebDriverWait(trình điều khiển=trình điều khiển, thời gian chờ=10). cho đến khi(
lamda x. x. exec_script("trả lại tài liệu. readyState === 'hoàn thành'")
)
error_message = "Tên người dùng hoặc mật khẩu không chính xác. "
# nhận lỗi (nếu có)
lỗi = trình điều khiển. find_elements_by_class_name("lỗi flash")
# in các lỗi tùy chọn
# cho e trong lỗi
# in(e. chữ)
# nếu chúng tôi tìm thấy thông báo lỗi đó trong lỗi, thì đăng nhập không thành công
nếu có (error_message trong e. văn bản cho e bị lỗi)
in("[. ] Đăng nhập thất bại")
khác
print("[+] Đăng nhập thành công")
[/mã số]

Chúng ta sử dụng WebDriverWait để đợi khi web tải xong, phương thức exec_script() thực thi Javascript trong ngữ cảnh của trình duyệt, mã JS trả về tài liệu. readyState === ‘complete’ return True khi trang được tải xuống và False back

Cuối cùng, chúng tôi đóng trình duyệt bằng lệnh

[mã lang=”trăn”]
# đóng tài xế
tài xế. đóng()
[/mã số]

Đượ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 đăng nhập sai, vì vậy hãy lưu ý điều đó

Lưu ý rằng quá trình đăng nhập sẽ khác nhau giữa các trang web, mục tiêu của hướng dẫn này cung cấp cho bạn các kỹ năng cần thiết để tự động đăng nhập vào trang web mục tiêu của bạn