Trong thời gian quét web hoặc với mục đích tự động hóa, chúng tôi yêu cầu lấy văn bản từ phần tử HTML của trang. Selenium cho phép chúng ta thực hiện điều này bằng một phương thức đặc biệt “______37”. Phương pháp này giúp chúng tôi hiển thị văn bản hiển thị trong nội dung HTML. Hôm nay chúng ta sẽ đi sâu tìm hiểu để hiểu rõ hơn về tính năng này
Thiết lập môi trường
Vì vậy, chúng ta hãy bắt đầu quá trình. Mô-đun
title = driver.find_element_by_class_name['title'].text print[title]0 cần được nhập từ selen và sau đó tạo một đối tượng trình điều khiển từ nó. Tiếp theo, chúng tôi cần chỉ định đường dẫn của
title = driver.find_element_by_class_name['title'].text print[title]1 vì chúng tôi sẽ sử dụng trình duyệt chrome để cuộn trang. Phương pháp
title = driver.find_element_by_class_name['title'].text print[title]2 có sẵn để có cái nhìn tốt hơn. Sau đó thử kết nối với trang web bằng phương pháp
title = driver.find_element_by_class_name['title'].text print[title]3. Chúng tôi sẽ sử dụng đợi ngầm định trong 10 giây
from selenium import webdriver driver = webdriver.Chrome[executable_path = r'G:/chromedriver_win32/chromedriver.exe'] driver.maximize_window[] driver.get['//theautomationzone.blogspot.com/2020/07/mix-of-basic-webelements.html'] driver.implicitly_wait[10]
Tìm văn bản tiêu đề từ một trang web với. chữ[]
Hôm nay chúng tôi sẽ cố gắng tìm văn bản tiêu đề từ blog “khu vực tự động hóa”. Đầu tiên, chúng ta cần tìm phần tử, sau đó chúng ta sẽ sử dụng phương thức text của Selenium Python để lấy văn bản của tiêu đề. Đưa con trỏ chuột vào bên trong trang web và Nhấp chuột phải vào con chuột. Từ menu ngữ cảnh, nhấp vào tùy chọn kiểm tra
Từ html chúng ta có thể sử dụng thuộc tính lớp để tìm phần tử và sau đó áp dụng “. text” để lấy văn bản của tiêu đề. Bây giờ chúng ta sẽ tạo một biến “title” và lưu phần tử web đã định vị với phương thức text trong đó
title = driver.find_element_by_class_name['title'].text print[title]
Văn bản tiêu đề “khu vực tự động hóa” sẽ được in trong bảng điều khiển
Cách lấy văn bản với get_attribute[]
Có một phương thức khác có sẵn trong Selenium được gọi là phương thức
title = driver.find_element_by_class_name['title'].text print[title]4 cũng cho phép chúng ta lấy văn bản ra khỏi html. Phương thức
title = driver.find_element_by_class_name['title'].text print[title]4 có thể nhận các đối số như “_______06”, “
title = driver.find_element_by_class_name['title'].text print[title]7”, “
title = driver.find_element_by_class_name['title'].text print[title]8”. Chẳng hạn, chúng tôi muốn lấy văn bản của đoạn thứ ba. Chúng tôi có thể lấy nó bằng các mã sau
title = driver.find_element_by_class_name['title'].text print[title]1
Ở đây, sau khi xác định vị trí webelement, chúng tôi đã sử dụng phương pháp
title = driver.find_element_by_class_name['title'].text print[title]9 để lấy văn bản. Kết quả sẽ như thế này
title = driver.find_element_by_class_name['title'].text print[title]3
Sự khác biệt. văn bản[] và get_attribute[]
Lưu ý văn bản đầu ra của đoạn 3 ở trên. Nó trông không giống như văn bản hiển thị trên trang web. Có một số khoảng trống giữa các cụm từ. Điều này là do có một thuộc tính “
title = driver.find_element_by_class_name['title'].text print[title]10” có sẵn bên trong thẻ HTML và chúng tôi đang lấy văn bản mã theo từng dòng được viết ở phía HTML. Nó sẽ không trả về khoảng trống hoặc ngắt dòng có sẵn bên trong thẻ phần tử HTML
Bây giờ nếu chúng ta cố gắng lấy cùng một văn bản của đoạn thứ ba bằng phương pháp “
title = driver.find_element_by_class_name['title'].text print[title]11”
title = driver.find_element_by_class_name['title'].text print[title]6
đầu ra sẽ là
title = driver.find_element_by_class_name['title'].text print[title]7
Như chúng ta có thể thấy văn bản đầu ra giống như văn bản được viết trên trang web. Nó bỏ qua các khoảng trống bên trong tệp HTML
Vì vậy, sự khác biệt chính là, phương thức
title = driver.find_element_by_class_name['title'].text print[title]4 sẽ trả về cùng một văn bản được viết ở phía HTML trong khi phương thức “
title = driver.find_element_by_class_name['title'].text print[title]11” sẽ sao chép cùng một văn bản được viết trên trang web
Cách lấy văn bản của một URL
Phương thức
title = driver.find_element_by_class_name['title'].text print[title]4 không chỉ cho phép chúng ta đưa văn bản ra khỏi phần tử mà còn cho phép chúng ta lấy văn bản được viết bên trong thuộc tính của thẻ phần tử. Chẳng hạn, chúng ta cần tìm liên kết được đính kèm trong phần “đây là ví dụ về liên kết” của trang web
Bằng cách kiểm tra HTML của phần liên kết Google của trang web, chúng tôi có thể thấy URL có sẵn bên trong thuộc tính
title = driver.find_element_by_class_name['title'].text print[title]15 của thẻ
title = driver.find_element_by_class_name['title'].text print[title]16. Chúng ta có thể sử dụng phương pháp
title = driver.find_element_by_class_name['title'].text print[title]17 để lấy giá trị của
title = driver.find_element_by_class_name['title'].text print[title]15
title = driver.find_element_by_class_name['title'].text print[title]5
Sau đây, định vị phần tử theo id, chúng tôi đã sử dụng '
title = driver.find_element_by_class_name['title'].text print[title]15' bên trong phương thức
title = driver.find_element_by_class_name['title'].text print[title]4 vì nó chứa URL của liên kết Google. nó trả về đầu ra dưới dạng văn bản thuần túy
title = driver.find_element_by_class_name['title'].text print[title]8
Đây là một cách rất hữu ích để lấy giá trị văn bản của một thuộc tính bên trong thẻ HTML
Cách lấy văn bản từ danh sách thả xuống
Hãy thử đặt danh sách thả xuống “chọn món ăn yêu thích của bạn” thành “Dứa” và nhận văn bản “Dứa” từ đó. Nếu chúng tôi kiểm tra phần tử bằng cách nhấp chuột phải vào phần tử đó, chúng tôi sẽ thấy rằng tùy chọn “Dứa” có sẵn trong thẻ
title = driver.find_element_by_class_name['title'].text print[title]31
Có một bài viết về “cách chọn menu thả xuống” trong blog Finxter. Bạn có thể sử dụng liên kết sau để biết quy trình tìm phần tử thẻ
title = driver.find_element_by_class_name['title'].text print[title]31
Cách chọn giá trị menu thả xuống bằng Python Selenium
Chúng ta cần import module
title = driver.find_element_by_class_name['title'].text print[title]33 và code sẽ làm theo như bên dưới để có được dòng chữ “
title = driver.find_element_by_class_name['title'].text print[title]34”
title = driver.find_element_by_class_name['title'].text print[title]3
Ở đây, chúng tôi xác định vị trí phần tử trước và sau đó với sự trợ giúp của phương pháp “
title = driver.find_element_by_class_name['title'].text print[title]35”, chúng tôi đã chọn giá trị “
title = driver.find_element_by_class_name['title'].text print[title]36” từ danh sách thả xuống. Cuối cùng, chúng tôi đã sử dụng phương pháp
title = driver.find_element_by_class_name['title'].text print[title]37 để đưa văn bản “quả dứa” ra khỏi nó
Đó là tất cả về cách lấy văn bản với Selenium trong Python. Tôi hy vọng, bây giờ bạn sẽ dễ dàng lấy văn bản từ trang web hơn