Hướng dẫn selenium crawl data python - trăn dữ liệu thu thập thông tin selen
Bài viết này chúng ta tìm hiểu cách sử dụng Selenium và Python để thu thập và tương tác với bất kỳ trang web nào. Show
Selenium là công cụ tự động hóa trình duyệt web ban đầu được thiết kế để tự động hóa các ứng dụng web cho mục đích thử nghiệm (testing). Nó hiện được sử dụng cho nhiều ứng dụng khác như tự động hóa các tác vụ quản trị dựa trên web, tương tác với các nền tảng không cung cấp Api, cũng như để thu thập thông tin web (web crawling). Tại sao chúng ta cần Selenium?
Cài đặt project Selenium PythonTrong bài này chúng ta sẽ sử dụng Python 3.x để thực hiện. Sau khi máy tính đã có Python chúc ta sẽ tiếp tục cài đặt các thành phần khác: Cài đặt virtual environmentVirtual environment là môi trường ảo để cài đặt Selenium Python bên trong, dùng commandline cd vào thư mục mà bạn muốn dùng làm project và chạy các dòng lệnh sau:
Cài đặt Chrome DriveKhởi chạy phiên bản Chrome đầu tiênTạo file bot.py trong thư mục selenium_python và bắt đầu code Import các packages:
Thêm 1 số option cho chrome như kích thước windows, chế độ ẩn danh, ...
Khởi tạo đối tượng
đường_dẫn_đến_file_chrome_driver bạn thay bằng đường dẫn đén file drive download ở bước trên, vd: "/Users/tuantai/Downloads/chromedriver" bạn thay bằng đường dẫn đén file drive download ở bước trên, vd: "/Users/tuantai/Downloads/chromedriver" Ok bây giờ có thể chạy thử bot này bằng lệnh: 2 ứng dụng chrome ở chế độ ẩn danh sẽ được mở lên.Tạo request đầu tiên của bạnTrong ví dụ này, chúng ta sẽ sử dụng Selenium để lấy tiêu đề tin tức trên Hacker News. Bạn có thể thử lại bằng: 2
Đợi response từ trangBản chất Javascript là không đồng bộ, vì vậy một số phần tử có thể không được tải đầy đủ và hiển thị ngay lập tức. Trong thực tế, nên thêm một số thời gian trễ trước khi nhận được phản hồi. Thay dòng code trên bằng
Trong trường hợp này (time.sleep), chúng ta tạm dừng 3 giây trước khi phân tích dữ liệu. Nhiều kỹ thuật đợi respon phức tạp hơn sau này bạn có thể tìm với WebDriverWaitWebDriverWait Tương tác với dữ liệuSelenium cung cấp một số cách để truy cập các phần tử trên trang (https://selenium-python.readthedocs.io/locating-elements.html). Các phương pháp thường được sử dụng là:
Quay về ví dụ đang làm trong bài này, ta lấy các phần tử theo css selector
Selenium trả về các đối tượng mà sau đó bạn có thể truy vấn. Ví dụ, nếu bạn muốn nhận:
Vì vậy, nếu chúng ta muốn lấy tiêu đề văn bản và url của các bài viết bằng Selenium:
Tương tự nếu bạn muốn lấy score và domain của từng bài viết:
Tổng kết nội dung của bot đầu tiên 0Như vậy bạn đã biết cách lấy thông tin cụ thể trên một trang web bằng Selenium. Selenium cũng cung cấp các điều khiển nâng cao hơn như nhấp chuột, chèn dữ liệu vào input ... cực kỳ mạnh mẽ khi thu thập dữ liệu các trang web phức tạp hơn. Sau đây là 1 số ví dụ nâng cao để các điểm nổi bật Selenium có thể làm được: Thực thi JavascriptClick button 1Cuộn chuột 2Truy cập vào các link trên trang 3Tối ưu lưu lượng tảiVô hiệu hóa hiển thị hình ảnh 4Tạo cache 5Chạy ngầm (không hiển thị UI trình duyệt) 6Chụp ảnh màn hình 7Tải ảnh 8Thực thi chuỗi hành động 9Truy cập với proxies 0Cuộn chuột trong 1 thẻ Select 1Còn rất nhiều điều Selenium có thể làm được bạn có thể tham khảo ở các link tài liệu sau:https://www.selenium.dev/documentation/en/webdriver/https://selenium-python.readthedocs.io/ Nguồn: https://trinhtuantai.com/huong-dan-lay-du-lieu-web-web-crawling-voi-selenium-python-webdrive.html |