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

//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;

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;

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['//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[]

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='//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;

Để 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;

# 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

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

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.

Chủ Đề