Cách crawl dữ liệu trang web bằng Selenium

Thủ Thuật Internet Thủ Thuật Trình Duyệt Web

Thu thập thông tin trang web khá hữu ích để tự động hóa một số tác vụ được thực hiện thường xuyên trên các trang web. Ngoài ra, bạn có thể viết trình thu thập thông tin để tương tác với trang web của mình như một con người. Bài viết sau Thuthuat.edu.vn.vn sẽ hướng dẫn các bạn cách thu thập dữ liệu website bằng Selenium.

Tự động hóa Google Chrome liên quan đến việc sử dụng các công cụ Selen, là thành phần phần mềm nằm giữa chương trình và trình duyệt của bạn. Đây là cách thu thập dữ liệu trang web bằng Selenium để tự động hóa Google Chrome.

Cách thu thập thông tin một trang web bằng Selenium

Cài đặt selen

Trình điều khiển web

Như đã đề cập ở trên, Selenium bao gồm một thành phần phần mềm chạy như một tiến trình riêng biệt và thực hiện các hành động thay cho các chương trình java. Thành phần này được gọi là Trình điều khiển Web và phải được tải xuống máy tính của bạn.

Vào đây để tải xuống phiên bản Selenium mới nhất, phù hợp với hệ điều hành máy tính của bạn (Windows, Linux hoặc macOS). Giải nén tệp ZIP ở đúng vị trí, chẳng hạn như C: WebDrivers chromedriver.exe. Bạn sẽ phải sử dụng vị trí này trong chương trình java của mình.

Mô-đun Java

Bước tiếp theo là thiết lập các mô-đun java cần thiết để sử dụng Selenium. Giả sử bạn đang sử dụng Maven để xây dựng chương trình java, hãy thêm các phụ thuộc vào POM.xml:

phụ thuộc>

sự phụ thuộc>

groupId> org.seleniumhq.selenium/ groupId>

ArtifactId> selenium-java/ ArtifactId>

phiên bản> 3.8.1/ phiên bản>

/phụ thuộc>

Để chạy các quy trình, tất cả các mô-đun bắt buộc phải được tải xuống và cài đặt trên máy tính của bạn.

Lần đầu tiên thiết lập Selenium

Bắt đầu với Selenium. Bước đầu tiên là tạo ChromeDriver:

Trình điều khiển WebDriver = mới ChromeDriver ();

Một cửa sổ Google Chrome mới sẽ xuất hiện trên màn hình. Điều hướng đến trang tìm kiếm của Google:

>>> Xem thêm :  Mẹo giữ quất tươi lâu, không bị rụng quả, héo lá

driver.get (“http://www.google.com”);

Tham chiếu đến các yếu tố đầu vào văn bản để thực hiện tìm kiếm. Phần tử văn bản có tên được đặt tên q. Định vị các phần tử HTML trên trang bằng phương pháp này. WebDriver.findElement ().

Phần tử WebElement = driver.findElement (By.name (“q”));

Bạn có thể gửi văn bản đến bất kỳ phần tử nào khác bằng phương pháp sendKeys (). Hãy thử gửi bằng một cụm từ tìm kiếm và kết thúc bằng một dòng mới để bắt đầu tìm kiếm ngay lập tức:

element.sendKeys (“terminator n”);

Bây giờ tìm kiếm đã hoạt động, bạn chỉ cần đợi trang kết quả. Để làm điều này:

WebDriverWait mới (trình điều khiển, 10)

.until (d -> d.getTitle (). toLowerCase (). startedWith (“terminator”));

Về cơ bản, đoạn mã trên yêu cầu Selenium đợi 10 giây và quay lại khi tiêu đề trang bắt đầu bằng dấu chấm dứt. Sử dụng hàm lambda để chỉ định điều kiện chờ.

Bây giờ bạn có tiêu đề của trang.

System.out.println (“Tiêu đề:” + driver.getTitle ());

Khi bạn đã hoàn tất phiên, hãy đóng cửa sổ trình duyệt:

driver.quit ();

Folks là các phiên trình duyệt đơn giản được điều khiển bằng java thông qua Selenium. Mặc dù khá đơn giản nhưng nó cho phép bạn lập trình rất nhiều thứ mà bình thường bạn sẽ phải làm bằng tay.

Sử dụng Trình kiểm tra của Google Chrome

Thanh tra Google Chrome là một công cụ vô giá để xác định các nguyên tố được sử dụng với selen. Công cụ này cho phép bạn nhắm mục tiêu các phần tử chính xác từ java để trích xuất thông tin cũng như thực hiện các hành động tương tác như nhấp vào các nút. Đây là cách sử dụng Thanh tra.

Mở Google Chrome và điều hướng đến một trang mới, giả sử trang IMDB xếp hạng phim Justice League (2017).

Nhấp chuột phải vào phần tóm tắt đoạn giới thiệu, chọn Quan sát trên menu.

Từ tab Yếu tốBạn có thể xem văn bản tóm tắt là một div với lớp Summary_text.

Sử dụng CSS hoặc XPath

Selenium hỗ trợ chọn các phần tử từ trang bằng CSS. (CSS hỗ trợ phương ngữ là CSS2). Ví dụ: để chọn văn bản tóm tắt từ trang IMDB ở trên, bạn sẽ viết:

>>> Xem thêm :  Cách thêm Google Search For vào Microsoft Edge khi click chuột phải

WebElement SummaryEl = driver.findElement (By.cssSelector (“div.summary_text”));

Bạn cũng có thể sử dụng Xpath để chọn các phần tử theo cách tương tự. Để chọn văn bản tóm tắt:

Tóm tắt WebElementEl = driver.findElement (By.xpath (“// div[@class=”summary_text”]”));

XPath và CSS có các tính năng tương tự nên bạn có thể chọn cái nào để sử dụng.

Đọc Google Mail từ Java

Đây là một ví dụ phức tạp hơn: tìm nạp Google Mail.

Khởi động Trình điều khiển Chrome, điều hướng đến gmail.com và đợi cho đến khi trang tải:

Trình điều khiển WebDriver = mới ChromeDriver ();

driver.get (“https://gmail.com”);

WebDriverWait mới (trình điều khiển, 10)

.until (d -> d.getTitle (). toLowerCase (). startedWith (“gmail”));

Tiếp theo tìm hộp thư điện tử (tên được đặt bởi ID nhận dạng) và nhập địa chỉ email. Nhấn vào nút kế tiếp và đợi trang nhập mật khẩu tải.

/ * Nhập tên người dùng / email * /

{

driver.findElement (By.cssSelector (“# IDfierId”)). sendKeys (email);

driver.findElement (By.cssSelector (“. RveJvd”)). nhấp chuột ();

}

WebDriverWait mới (trình điều khiển, 10)

.until (d ->! d.findElements (By.xpath (“// div[@id=’password’]”)). isEmpty ());

Bây giờ, chúng ta nhập mật khẩu, nhấn nút Tiếp theo một lần nữa và đợi trang Gmail tải.

/ * Nhập mật khẩu * /

{

người lái xe

.findElement (By.xpath (“// div[@id=’password’]// đầu vào[@type=”password”]”))

.sendKeys (mật khẩu);

driver.findElement (By.cssSelector (“. RveJvd”)). nhấp chuột ();

}

WebDriverWait mới (trình điều khiển, 10)

.until (d ->! d.findElements (By.xpath (“// div[@class=”Cp”]”)). isEmpty ());

Tìm nạp danh sách các hàng email và lặp lại từng mục.

Danh sách hàng = trình điều khiển

.findElements (By.xpath (“// div[@class=”Cp”]// bảng / tbody / tr “));

for (WebElement tr: row) {

}

Đối với mỗi mục nhập, tìm nạp Từ khung. Lưu ý một số mục Từ có thể có nhiều phần tử, tùy thuộc vào số lượng người trong cuộc trò chuyện.

{

/ * Từ phần tử * /

System.out.println (“Từ:”);

cho (WebElement e: tr

.findElements (By.xpath (“.// div[@class=”yW”]/ * “))) {

System.out.println (“” +

e.getAttribute (“email”) + “,” +

e.getAttribute (“tên”) + “,” +

e.getText ());

}

}

Tiếp theo tìm nạp đối tượng.

>>> Xem thêm :  Cách NAT Port Modem Viettel, mở cổng modem Viettel

{

/ * Môn học * /

System.out.println (“Sub:” + tr.findElement (By.xpath (“.// div[@class=”y6″]”)). getText ());

}

Và ngày giờ của tin nhắn.

{

/ * Ngày giờ * /

WebElement dt = tr.findElement (By.xpath (“./ td[8]/ * “));

System.out.println (“Ngày:” + dt.getAttribute (“tiêu đề”) + “,” +

dt.getText ());

}

Dưới đây là tổng số hàng email trên trang.

System.out.println (row.size () + “thư.”);

Sau khi hoàn tất, hãy đóng cửa sổ trình duyệt.

driver.quit ();

cach-crawl-du-lieu-trang-web-bang-selenium-30079n.aspx
Trên đây là cách thu thập dữ liệu website bằng Selenium với Google Chrome. Với Trình kiểm tra của Google Chrome, bạn có thể dễ dàng tìm ra CSS hoặc XPath nào để trích xuất hoặc tương tác với.

Các từ khóa liên quan:

Thu thập thông tin trang web bằng Selenium

, sử dụng Selenium để thu thập dữ liệu, tự động hóa Google Chrome,

Recent Post