Thu thập dữ liệu Selenium trong Python

Quét web là một kỹ năng cần thiết cho tất cả các nhà khoa học dữ liệu và kỹ sư tự động hóa trên toàn thế giới. Đó là quá trình cạo dữ liệu từ web. Dữ liệu có thể ở dạng văn bản, liên kết, bảng hoặc hình ảnh. Nói chung, bạn chỉ có thể cạo dữ liệu tĩnh từ web. Đây là vai trò của selen

Selenium là một thư viện và công cụ Python được sử dụng để tự động hóa các trình duyệt web để thực hiện một số tác vụ. Một trong số đó là quét web để trích xuất dữ liệu và thông tin hữu ích có thể không có sẵn. Dưới đây là hướng dẫn từng bước về cách sử dụng Selenium với ví dụ trích xuất dữ liệu lương của cầu thủ NBA từ trang web https. // vòng vèo. com/lương/người chơi/

Bước 1 — Cài đặt và Nhập khẩu

pip install selenium

Sau khi cài đặt, bạn đã sẵn sàng để nhập

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
Bước 2 — Cài đặt và truy cập WebDriver

Trình điều khiển web là một thành phần quan trọng cho quá trình này. Đó là thứ thực sự sẽ tự động mở trình duyệt của bạn để truy cập trang web bạn chọn. Bước này khác nhau tùy thuộc vào trình duyệt bạn sử dụng để khám phá internet. Tôi tình cờ sử dụng Google Chrome. Một số người nói rằng Chrome hoạt động tốt nhất với Selenium, mặc dù nó cũng hỗ trợ Internet Explorer, Firefox, Safari và Opera. Đối với chrome trước tiên bạn cần tải webdriver tại https. // chromedriver. crom. tổ chức/tải xuống. Có một số tùy chọn tải xuống khác nhau dựa trên phiên bản Chrome của bạn. Để tìm phiên bản Chrome bạn có, hãy nhấp vào 3 dấu chấm dọc ở góc trên cùng bên phải của cửa sổ trình duyệt, cuộn xuống để trợ giúp và chọn “Giới thiệu về Google Chrome”. Ở đó bạn sẽ thấy phiên bản của mình. Tôi có phiên bản 80. 0. 3987. 149, được hiển thị trong ảnh chụp màn hình bên dưới

Bây giờ bạn cần biết nơi bạn đã lưu bản tải xuống webdriver trên máy tính cục bộ của mình. Của tôi chỉ được lưu trong thư mục tải xuống mặc định của tôi. Giờ đây, bạn có thể tạo biến trình điều khiển bằng đường dẫn trực tiếp của vị trí trình điều khiển web đã tải xuống của bạn

driver = webdriver.Chrome['/Users/MyUsername/Downloads/chromedriver']
Bước 3 — Truy cập trang web qua Python

Bước rất đơn giản nhưng rất quan trọng. Bạn cần mã của mình để thực sự mở trang web mà bạn đang cố gắng tìm kiếm

driver.get['//hoopshype.com/salaries/players/']

Khi chạy, đoạn mã này sẽ mở trình duyệt đến trang web bạn mong muốn

Bước 4— Xác định vị trí thông tin cụ thể mà bạn đang thu thập

Để trích xuất thông tin mà bạn đang muốn cạo, bạn cần xác định vị trí XPath của phần tử. XPath là một cú pháp được sử dụng để tìm bất kỳ phần tử nào trên trang web. Để xác định vị trí XPath của phần tử, hãy đánh dấu phần tử đầu tiên trong danh sách những gì bạn đang tìm kiếm, nhấp chuột phải và chọn kiểm tra; . Ví dụ của tôi, trước tiên tôi muốn tìm tên cầu thủ NBA, vì vậy trước tiên tôi chọn Stephen Curry

Trong các công cụ dành cho nhà phát triển, giờ đây chúng ta thấy phần tử “Stephen Curry” xuất hiện như vậy


@class="name"]']

Và bây giờ để lấy văn bản của tên từng người chơi vào một danh sách, chúng tôi viết chức năng này

players_list = []
for p in range[len[players]]:
players_list.append[players[p].text]

Theo quy trình tương tự này để có được mức lương của người chơi…

Mức lương 2019/20 của Stephen Curry


$38.506.482

Trong khi kiểm tra các phần tử này và dịch sang XPath, chúng ta có thể bỏ qua kiểu và giá trị dữ liệu, chỉ lo lắng về lớp

salaries = driver.find_elements_by_xpath['//td[@class="hh-salaries-sorted"]']

Và danh sách văn bản trả lương…

salaries_list = []
for s in range[len[salaries]]:
salaries_list.append[salaries[s].text]
Bước 5 — Áp dụng cho mỗi năm có sẵn và kết hợp mọi thứ lại với nhau

Thông thường, khi sử dụng Selenium, bạn sẽ cố truy xuất dữ liệu nằm trên nhiều trang khác nhau từ cùng một trang web. Trong ví dụ của tôi, hoopshype. com có ​​dữ liệu lương NBA từ mùa giải 1990/91

Như bạn có thể thấy, sự khác biệt giữa URL của mỗi mùa chỉ là vấn đề về số năm được đưa vào cuối. Vì vậy, URL cho mùa giải 2018/19 là https. // vòng vèo. com/salaries/players/2018-2019/ và URL của mùa giải 1990/91 là https. // vòng vèo. com/salaries/players/1990-1991/. Cùng với đó, chúng tôi có thể tạo một chức năng lặp lại qua từng năm và truy cập từng URL riêng lẻ, sau đó đặt tất cả các bước mà chúng tôi đã trình bày trước đây cùng nhau cho từng năm riêng lẻ. Tôi cũng ghép từng cầu thủ với mức lương của họ cho mùa giải đó với nhau, đặt vào một khung dữ liệu tạm thời, thêm năm vào khung dữ liệu tạm thời đó, sau đó thêm khung dữ liệu tạm thời này vào khung dữ liệu chính bao gồm tất cả dữ liệu chúng tôi đã thu được. Mã cuối cùng ở bên dưới

Bạn có thể cạo dữ liệu bằng Selenium không?

Selenium sử dụng giao thức Webdriver để tự động hóa các quy trình trên nhiều trình duyệt phổ biến khác nhau như Firefox, Chrome và Safari. Việc tự động hóa này có thể được thực hiện cục bộ [đối với các mục đích như thử nghiệm một trang web] hoặc từ xa [đối với các mục đích như quét web] .

Trình thu thập dữ liệu Selenium là gì?

Trình thu thập thông tin. Selenium là công cụ tự động hóa trình duyệt được sử dụng chủ yếu để thử nghiệm các ứng dụng web . Bạn có thể mô phỏng hành động và tương tác của người dùng thực với các ứng dụng web của mình. Selenium hỗ trợ tất cả các nền tảng trình duyệt và hệ điều hành chính. Có các ràng buộc cho tất cả các ngôn ngữ lập trình phổ biến.

Python có tốt cho việc cạo dữ liệu không?

Câu trả lời ngắn. Có. Python là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới nhờ tính dễ sử dụng và học hỏi, cộng đồng rộng lớn và tính di động của nó. Ngôn ngữ này cũng thống trị tất cả các lĩnh vực liên quan đến dữ liệu hiện đại, bao gồm phân tích dữ liệu, học máy và quét web.

Chủ Đề