Trình duyệt web sử dụng Javascript để tạo ra trải nghiệm động và tương tác cho người dùng. Phần lớn các ứng dụng và chức năng khiến Internet trở nên không thể thiếu đối với cuộc sống hiện đại đều được mã hóa dưới dạng Javascript. Xem xét các phiên bản đầu tiên của Javascript, các trang web là tĩnh và cung cấp một chút tương tác với người dùng ngoài việc nhấp vào liên kết
Trình duyệt web sử dụng Javascript để tạo ra trải nghiệm động và tương tác cho người dùng. Phần lớn các ứng dụng và chức năng khiến Internet trở nên không thể thiếu đối với cuộc sống hiện đại đều được mã hóa dưới dạng Javascript. Xem xét các phiên bản đầu tiên của Javascript, các trang web là tĩnh và cung cấp một chút tương tác với người dùng ngoài việc nhấp vào liên kết và tải các trang mới.
Sau đây là một số cải tiến động của trang web được thực hiện bằng Javascript.
Bạn có thể sử dụng scraping để thu thập dữ liệu có cấu trúc từ các trang web theo cách tự động. Web scraping còn được gọi là trích xuất dữ liệu web. Một số trường hợp sử dụng chính của web scraping là:
Trước tiên chúng ta hãy tìm hiểu nhu cầu thu thập dữ liệu trang web.
Các doanh nghiệp sử dụng web scraping để tận dụng lượng lớn dữ liệu công khai có sẵn để đưa ra quyết định thông minh hơn. Dưới đây là một số lĩnh vực mà web scraping được sử dụng.
Sau đây là những lý do tại sao các công ty cần phải thu thập dữ liệu từ các trang web.
Tự động hóa – Không thể sao chép và dán từng thông tin từ một trang web. Các công ty sử dụng phần mềm thu thập dữ liệu để tự động hóa hầu hết các quy trình liên quan của họ.
Quản lý dữ liệu – Bạn không thể sử dụng cơ sở dữ liệu và bảng tính để quản lý số và hình trên trang web được định cấu hình bằng HTML. Vì vậy, các công ty sử dụng công cụ trích xuất dữ liệu web để quản lý dữ liệu của họ.
Danh sách bất động sản – Các đại lý bất động sản sử dụng công cụ thu thập dữ liệu web để điền vào cơ sở dữ liệu về các bất động sản cho thuê hoặc bán.
Dữ liệu so sánh trang web mua sắm – Các công ty sử dụng công cụ thu thập dữ liệu web để thu thập dữ liệu giá cả và sản phẩm từ mỗi nhà bán lẻ, để họ có thể cung cấp cho người dùng dữ liệu so sánh mà họ mong muốn.
Thống kê và thông tin chuyên sâu về ngành – Các công ty sử dụng scraping để xây dựng cơ sở dữ liệu lớn và rút ra thông tin chuyên sâu về ngành từ những cơ sở dữ liệu này. Ví dụ, một công ty có thể scraping và phân tích hàng tấn dữ liệu về giá dầu. Sau đó, công ty có thể bán thông tin chuyên sâu của mình cho các công ty dầu mỏ trên toàn thế giới.
Hãy cùng xem bạn có thể sử dụng Selenium để thu thập dữ liệu từ các trang web Javascript như thế nào.
Bạn có thể cài đặt Selenium bằng lệnh sau.
pip cài đặt selenium
Bạn có biết Selenium mô phỏng một trình duyệt thực tế không? Nó không sử dụng cài đặt Chrome của bạn, thay vào đó nó sử dụng trình điều khiển để chạy trình duyệt. Trình điều khiển web Selenium tham chiếu đến cả liên kết ngôn ngữ và triển khai của từng trình duyệt kiểm soát mã. Bạn phải tải xuống trình điều khiển web và có thể thêm nó vào biến môi trường path. Chúng ta sẽ sử dụng trình điều khiển web Firefox và bạn có thể cài đặt nó bằng cách làm theo liên kết này .
Chúng ta hãy xem xét một ví dụ selenium đơn giản liên quan đến việc thu thập tiêu đề trang web. Đối với ví dụ này, trước tiên chúng ta sẽ nhập webdriver từ selenium vào tệp python như được hiển thị bên dưới:
từ selenium nhập webdriver
Chúng ta phải đề cập đến đường dẫn nơi trình điều khiển web nằm. Sau đó, chúng ta phải khởi tạo trình điều khiển web Firefox.
WEBDRIVER_PATH = './' trình điều khiển = webdriver.Firefox(WEBDRIVER_PATH)
Bây giờ chúng ta xác định URL để lấy tiêu đề của trang web.
URL = 'https://www.google.com' trình điều khiển. lấy (URL) in (trình điều khiển.title)
Chạy đoạn mã trên sẽ mở một cửa sổ firefox in ra bảng điều khiển tiêu đề của trang web. Chúng tôi đã định nghĩa URL của Google làm ví dụ trong trường hợp này, vì vậy kết quả sẽ như thế này:
Đây là trang google từ trình điều khiển web firefox. Tiêu đề được in trên bảng điều khiển sẽ như sau:
Chúng ta phải đóng thủ công cửa sổ firefox đã mở. Chúng ta sẽ thêm driver.quit() vào cuối mã của mình để cửa sổ sẽ tự động đóng sau khi công việc hoàn tất.
từ selenium nhập webdriver WEBDRIVER_PATH = './' driver = webdriver.Firefox(WEBDRIVER_PATH) URL = 'https://www.google.com' driver.get (URL) print (driver.title) driver.quit()
Trong trường hợp bạn muốn thu thập dữ liệu từ một trang web động, bạn có thể làm theo các bước tương tự được đề cập ở trên. Ví dụ, nếu bạn muốn lấy tiêu đề Youtube , bạn có thể sử dụng mã bên dưới.
từ selenium nhập webdriver WEBDRIVER_PATH = './' driver = webdriver.Firefox(WEBDRIVER_PATH) URL = 'https://www.youtube.com' driver.get (URL) in (driver.title) driver.quit()
Chúng ta hãy thử một điều mới ở đây. Chúng ta có thể chỉnh sửa hộp tìm kiếm và điền vào đó từ “Selenium” bằng cách sử dụng lớp “Keys” như được hiển thị bên dưới.
từ selenium .webdriver .common .keys nhập Keys
Sau khi khởi tạo trình điều khiển web Firefox và lấy được tiêu đề Youtube, chúng ta tạo một đối tượng chứa hộp tìm kiếm với xpath.
hộp tìm kiếm = trình điều khiển.tìm_kiếm_phần_tử_theo_xpath( '//đầu_vào[@id="tìm_kiếm"]' )
Sau đó, chúng tôi chỉnh sửa nội dung của hộp tìm kiếm và điền vào đó từ “Selenium”.
hộp tìm kiếm .send_keys ( 'Selenium' )
Sau khi điền nội dung mong muốn vào ô tìm kiếm, chúng ta có thể nhấn “Enter” để kích hoạt tìm kiếm.
hộp tìm kiếm.gửi_khóa ( Phím.ENTER )
Bạn có thể thấy trong hình ảnh bên dưới rằng hộp tìm kiếm của Youtube có chứa từ “Selenium”.
Proxy được yêu cầu khi bạn cần nội dung web được bản địa hóa. Proxy cũng được yêu cầu khi bạn gửi quá nhiều yêu cầu đến một trang web trong thời gian ngắn. Bạn cần proxy cho Selenium khi cần kiểm tra tự động. Tuy nhiên, để sử dụng proxy Selenium để thu thập dữ liệu trang web Javascript, bạn cần sử dụng dây Selenium mở rộng các ràng buộc của Selenium và cấp quyền truy cập vào các yêu cầu cơ bản do trình duyệt thực hiện.
Để sử dụng Selenium với proxy, sau đây là gói bạn cần cài đặt.
từ selenium wire nhập webdriver
Sau khi cài đặt thư viện Python selenium-wire, bạn cần lưu ý những điều sau:
Ở đây chúng tôi đề cập đến một số cổng ngẫu nhiên 8080 làm ví dụ. Bạn có thể thiết lập tên người dùng, mật khẩu và URL của trang web mong muốn theo lựa chọn của riêng bạn.
proxy_username = "USER_NAME"
proxy_password = "PASSWORD"
proxy_url = "Any Website URL"
proxy_port = 8080
options = {
"proxy": {
"http": f"http://{proxy_username}:{proxy_password}@{proxy_url}:{proxy_port}",
"verify_ssl": False,
},
}
Đối với trình điều khiển web Selenium, proxy dân dụng là lựa chọn tốt nhất. Bởi vì chúng không dễ bị phát hiện như proxy trung tâm dữ liệu . Chúng định tuyến các yêu cầu của khách hàng thông qua IP dân dụng và được tin cậy hơn IP trung tâm dữ liệu. Chúng cũng hữu ích khi truy cập các trang web phức tạp sử dụng Javascript như Youtube, Google, Instagram, v.v.
Bạn cần sử dụng proxy để thu thập dữ liệu từ một trang web vì những lý do sau:
Việc trích xuất dữ liệu web rất quan trọng vì bạn có thể sử dụng nó cho:
Tiếp theo, chúng tôi đã thảo luận về cách bạn có thể sử dụng Selenium để thu thập các trang web có tính năng Javascript trong Python. Bạn có thể thu thập nội dung của các trang web tĩnh cũng như các trang web động như Youtube. Bạn cũng cần sử dụng proxy Selenium để kiểm tra tự động. Các proxy tốt nhất mà bạn có thể sử dụng là proxy dân dụng vì chúng cực kỳ nhanh và không dễ bị phát hiện như các proxy khác.
Hy vọng bạn đã hiểu được cách thu thập dữ liệu trang web Javascript bằng Python.