Quét web nhiều trang Python Selenium

Quét web, khảo sát, bảng câu hỏi, nhóm tiêu điểm, v.v. , là một số cơ chế được sử dụng rộng rãi để thu thập dữ liệu chuyên sâu. Tuy nhiên, quét web được coi là phương pháp thu thập dữ liệu hiệu quả và đáng tin cậy nhất trong số tất cả các phương pháp này. Quét web, còn được gọi là trích xuất dữ liệu web, là một phương pháp tự động để lấy dữ liệu lớn từ các trang web. Nó xử lý HTML của trang web để trích xuất dữ liệu để thao tác, chẳng hạn như thu thập dữ liệu văn bản và lưu trữ vào một số khung dữ liệu hoặc trong cơ sở dữ liệu

  • Bởi Vijaysinh Lendave

Quét web nhiều trang Python Selenium

Quét web nhiều trang Python Selenium

Quét web nhiều trang Python Selenium

Tổng lượng dữ liệu đang bùng nổ hơn bao giờ hết theo cách không có cấu trúc. Vào cuối thập kỷ này, người ta ước tính rằng chúng ta sẽ có gần 100 dữ liệu zettabyte và khoảng 80% trong số đó là dữ liệu không có cấu trúc. Dữ liệu phi cấu trúc không là gì ngoài hình ảnh, âm thanh, văn bản, video, v.v. và những dữ liệu này không thể được sử dụng trực tiếp để xây dựng mô hình. Ngày nay, các ngành công nghiệp đang nỗ lực tận dụng dữ liệu phi cấu trúc này vì nó có thể chứa một lượng lớn thông tin. Một lượng lớn thông tin có sẵn trên internet và thực hiện các bước đúng đắn trên dữ liệu có thể mang lại lợi ích kinh doanh tiềm năng. Bằng cách đưa ra phương pháp phù hợp để thực hiện có thể mang lại cái nhìn sâu sắc hữu ích.     

Quét web, khảo sát, bảng câu hỏi, nhóm tiêu điểm, v.v. , là một số cơ chế được sử dụng rộng rãi để thu thập dữ liệu chuyên sâu. Tuy nhiên, quét web được coi là phương pháp thu thập dữ liệu hiệu quả và đáng tin cậy nhất trong số tất cả các phương pháp này. Quét web, còn được gọi là trích xuất dữ liệu web, là một phương pháp tự động để lấy dữ liệu lớn từ các trang web. Nó xử lý HTML của trang web để trích xuất dữ liệu để thao tác, chẳng hạn như thu thập dữ liệu văn bản và lưu trữ vào một số khung dữ liệu hoặc trong cơ sở dữ liệu

Sau đây là trường hợp sử dụng phổ biến khi sử dụng quét web;

TUYỆT VỜI

Đăng ký hàng tuần của bạn về những gì đang xảy ra trong công nghệ mới nổi

E-mail

Đăng ký

  • Thu thập danh sách bất động sản
  • Phát hiện thay đổi trang web
  • Theo dõi sự hiện diện trực tuyến
  • Tích hợp dữ liệu
  • Nghiên cứu
  • Đánh giá cạo từ các trang web mua sắm
  • theo dõi thời tiết
  • Khai thác dữ liệu
  • Cạo dữ liệu từ email
  • và nhiều cái khác

Để tiến hành quét web, chúng tôi sẽ tiến hành với một công cụ có tên là Selenium. Nó là một công cụ tự động hóa trình duyệt web mạnh mẽ có thể mô phỏng các hoạt động mà con người chúng ta muốn thực hiện trên web. Nó mở rộng hỗ trợ cho nhiều trình duyệt khác nhau như Chrome, Internet Explorer, Safari, Edge, Firefox. Để lấy dữ liệu từ các trình duyệt này, Selenium cung cấp một mô-đun có tên là WebDriver, rất hữu ích để thực hiện các tác vụ khác nhau như kiểm tra tự động, nhận cookie, nhận ảnh chụp màn hình, v.v. Một số trường hợp sử dụng phổ biến của selen để quét web là gửi biểu mẫu, đăng nhập tự động, thêm và xóa dữ liệu và xử lý lời nhắc cảnh báo. Để biết thêm chi tiết về selen, bạn có thể theo dõi tài liệu chính thức này.   

Quét web tĩnh và động bằng Selenium

Có sự khác biệt giữa trang web tĩnh và trang web động. Trong các trang tĩnh, nội dung vẫn giữ nguyên cho đến khi ai đó thay đổi chúng theo cách thủ công

Mặt khác, nội dung trong các trang web động có thể khác với những khách truy cập khác nhau; . Điều này làm tăng độ phức tạp về thời gian vì các trang web động có thể hiển thị ở phía máy khách, không giống như các trang tĩnh ở phía máy chủ.     

Nội dung trang web tĩnh được tải xuống cục bộ và tập lệnh có liên quan được sử dụng để thu thập dữ liệu. Ngược lại, nội dung trang web động được tạo duy nhất cho mọi yêu cầu sau yêu cầu tải ban đầu.   

Để loại bỏ dữ liệu khỏi trang web, Selenium cung cấp một số công cụ định vị tiêu chuẩn giúp định vị nội dung từ trang đang được kiểm tra;

Quét web nhiều trang Python Selenium
Nguồn. Trang chính thức

Trong bài viết này, tôi sẽ mô phỏng hành vi tự động này; . com và biến Pandas Dataframe ra khỏi nó; . com sử dụng gắn thẻ động.  

triển khai mã

Cài đặt và nhập tất cả các phụ thuộc

! pip install webdriver_manager
! pip install selenium

Trình quản lý trình điều khiển web được sử dụng để cài đặt các ổ đĩa cần thiết cho trình duyệt

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import pandas as pd

Khởi tạo Chrome

Tạo một biến có tên là trình điều khiển, biến này chứa một phiên bản cho Google Chrome và hơn nữa, chúng ta sẽ sử dụng biến này để khởi tạo các lệnh; . cửa sổ tối đa mở chrome trên toàn màn hình

driver  = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()

Các lệnh trên mở cửa sổ như thế này;

Quét web nhiều trang Python Selenium

Mở trang web mong muốn

Tiếp theo, chúng tôi sẽ mở Naukri. com, hiển thị kết quả được truy vấn. Tôi đã tìm kiếm Việc làm Nhà khoa học dữ liệu có sẵn trên cổng thông tin;

driver.get('https://www.naukri.com/data-scientist-jobs?k=data%20scientist')

Cạo dữ liệu

Sau khi mở trang web, bạn cần kiểm tra trang web bằng cách nhấp vào nút bên phải trên chuột; . Kiểm tra không là gì ngoài chế độ xem HTML của trang.   

Hình ảnh dưới đây cho thấy cách theo dõi Xpath;

Quét web nhiều trang Python Selenium

Thành phần được đánh dấu trong bảng điều khiển kiểm tra là mã HTML cho Chức danh Công việc; . Đường dẫn X có thể được lấy trực tiếp bằng cách nhấp chuột phải vào mã, bên dưới bản sao;

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import pandas as pd
0

Sau khi quan sát từng chức danh Công việc, bạn nhận thấy rằng tên lớp được liên kết với nó giống nhau, vì vậy bạn sẽ loại bỏ tiêu đề bằng cách sử dụng tên lớp như bên dưới,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import pandas as pd
0

Vì vậy, bây giờ tất cả các tên Công việc được lưu trữ trong job_title, vì vậy chúng tôi cần trích xuất phần tử web đó bằng cách sử dụng. phương pháp văn bản cho mỗi tiêu đề như dưới đây;

title = []
for i in range(len(job_title)):
     title.append(job_title[i].text)

title

Danh sách tiêu đề hiển thị như dưới đây;

Quét web nhiều trang Python Selenium

Cách tiếp cận tương tự có thể được áp dụng cho quan sát thứ hai của chúng tôi, tôi. e. công ty đang cung cấp công việc

Hãy cùng nhau thực hiện tất cả điều này, một tập lệnh tự động cung cấp cho bạn Khung dữ liệu chứa chức danh công việc và tên công ty có sẵn trên một trang cụ thể

driver  = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()
driver.get('https://www.naukri.com/data-scientist-jobs?k=data%20scientist')

jobs = driver.find_elements_by_xpath('//a[@class="title fw500 ellipsis"]')
company = driver.find_elements_by_xpath('//a[@class="subTitle ellipsis fleft"]')

title = []
for i in range(len(jobs)):
    title.append(jobs[i].text)

data = pd.DataFrame(title)    

company_ = []
for i in range(len(company)):
    company_.append(company[i].text)

data['company'] = company_

data.to_csv('Job List.csv',index=False)
data

driver.close()
Quét web nhiều trang Python Selenium

Thu thập dữ liệu từ nhiều trang.

Phần này sẽ xem cách lấy dữ liệu từ nhiều trang; . com;

Đầu tiên, chúng tôi xác định một danh sách trống cho hai biến đó, trong đó nhận xét và id người dùng sẽ được thêm vào;

Để điều hướng giữa các trang, chúng tôi sẽ lấy xpath từ thanh phủ định của trang đó; .    

user = []
commnent = []

#initialize the driver
driver  = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()

# open the product page
url='https://www.sephora.com/product/fresh-rose-hyaluronic-acid-deep-hydration-moisturizer-P471237?icid2=new%20arrivals:p471237:product'

driver.get(url)

Sau khi cuộn qua trang sẽ giống như dưới đây;

Quét web nhiều trang Python Selenium

Để loại bỏ dữ liệu, hãy sử dụng bảng điều khiển kiểm tra để hiển thị xpath như hình ảnh bên dưới;

Quét web nhiều trang Python Selenium
# scrape the data from page
comments = driver.find_elements_by_xpath('//div[@class="css-1x44x6f eanm77i0"]')
user_id = driver.find_elements_by_xpath('//strong[@data-at="nickname"]')

# append the data to list
for i in range(len(user_id)):
    user.append(user_id[i].text)

for i in range(len(comments)):
    commnent.append(comments[i].text)    

Sau khi nối thêm dữ liệu, bạn có thể điều hướng trang tiếp theo và nối lại dữ liệu;

________số 8

Sau khi thêm lượng dữ liệu mong muốn, chúng tôi có thể tạo khung dữ liệu từ nó trước và tệp CSV

Quét web nhiều trang Python Selenium

Sau khi cạo tất cả dữ liệu, khung dữ liệu trông như trên;

Sự kết luận

Chúng tôi có cách cạo dữ liệu từ các trang web; . Cạo từ nhiều trang sẽ mất một chút thời gian, nhưng nó sẽ cho kết quả như mong đợi. Do đó, bạn có thể thực hiện nhiều kỹ thuật phân tích dữ liệu để rút ra những hiểu biết hữu ích và tạo ra các mô hình dự đoán từ chúng

Tài liệu tham khảo

  • Máy tính xách tay Jupyter cho mã
  • Tài liệu chính thức về Selenium

Nhiều câu chuyện AIM tuyệt vời hơn

9 công cụ tốt nhất dành cho nhà phát triển Python

Tại sao không ai coi trọng AI sáng tạo?

Chính phủ Meta-Ấn Độ chôn cất chiếc rìu, đoàn kết vì đổi mới AI

7 lựa chọn thay thế ChatGPT hàng đầu

CEAT được chứng nhận là Công ty tốt nhất cho các nhà khoa học dữ liệu

Quét web nhiều trang Python Selenium

Vijaysinh là một người đam mê học máy và học sâu. Anh ấy có kỹ năng về các thuật toán ML, thao tác dữ liệu, xử lý và trực quan hóa, xây dựng mô hình

Làm cách nào để cạo nhiều trang Python Selenium?

Làm cách nào để lấy dữ liệu từ nhiều trang của một trang web? .
Kéo một tác vụ Vòng lặp vào luồng công việc
Chọn chế độ “Danh sách URL”
Nhập/Dán danh sách các URL bạn muốn cạo vào hộp văn bản
Đừng quên bấm OK và nút Save

Làm cách nào để xử lý nhiều trang web trong Selenium?

Đặt thuộc tính hệ thống thành Chromedriver và chỉ định đường dẫn của nó
Khởi tạo webdriver sang chromedriver mới
Nhận URL của trang web và tối đa hóa trang
Lấy tay cầm cửa sổ của cửa sổ cha
Lấy tay cầm cửa sổ của tất cả các cửa sổ

Python xử lý nhiều cửa sổ trong Selenium như thế nào?

Xử lý nhiều cửa sổ con trong Selenium Python .
Nhấp vào liên kết “Phương thức bật lên cửa sổ'
Trong trang web mới, nhấp vào nút “Theo dõi Twitter & Facebook” để mở các cửa sổ con
Chuyển sang từng cửa sổ con đang mở bằng tiêu đề trang
In tiêu đề trang của mỗi cửa sổ con
Đóng phiên trình duyệt

Selenium hay Beautifulsoup tốt hơn cho việc quét web?

Nếu bạn là người mới bắt đầu và nếu bạn muốn tìm hiểu mọi thứ một cách nhanh chóng cũng như muốn thực hiện các thao tác quét web thì Beautiful Soup là lựa chọn tốt nhất . selen. Khi bạn đang xử lý trang web nổi bật của Core Javascript thì Selenium sẽ là lựa chọn tốt nhất.