Hướng dẫn jsoup extract text from html - jsoup trích xuất văn bản từ html
Vấn đềSau khi phân tích một tài liệu và tìm một số yếu tố, bạn sẽ muốn nhận dữ liệu bên trong các yếu tố đó. Show
Dung dịch
Ví dụ:
Sự mô tảCác phương thức trên là cốt lõi của các phương thức truy cập dữ liệu phần tử. Có những người khác khác:
Tất cả các phương thức accessor này có các phương thức setter tương ứng để thay đổi dữ liệu. Xem thêm
Tôi đã sử dụng mã này:
Nhưng nó chỉ xóa thẻ 4Bất kỳ thẻ 5 nào bên trong 6 vẫn sẽ xuất hiện
Darkajax 15.7K11 Huy hiệu vàng54 Huy hiệu bạc65 Huy hiệu Đồng11 gold badges54 silver badges65 bronze badges Đã hỏi ngày 15 tháng 3 năm 2013 lúc 16:04Mar 15, 2013 at 16:04
Sử dụng 7 thay vì 8 để có được văn bản kết hợp của phần tử và tất cả trẻ em của nó.Đã trả lời ngày 15 tháng 3 năm 2013 lúc 16:08Mar 15, 2013 at 16:08
Matt Cainmatt CainMatt Cain 5.4883 Huy hiệu vàng35 Huy hiệu bạc45 Huy hiệu Đồng3 gold badges35 silver badges45 bronze badges Hãy thử sử dụng 7:
Thay vì 8.Đã trả lời ngày 15 tháng 3 năm 2013 lúc 16:07Mar 15, 2013 at 16:07
James Donnellyjames DonnellyJames Donnelly Huy hiệu vàng 124K3434 gold badges206 silver badges212 bronze badges Đó là một buổi sáng chủ nhật tốt đẹp, và đột nhiên một ý tưởng cho dự án lớn tiếp theo của bạn sẽ xảy ra: "Làm thế nào về việc tôi lấy dữ liệu do Công ty X cung cấp và xây dựng một mặt trận cho nó?" Bạn nhảy vào mã hóa và nhận ra rằng Công ty X không cung cấp API cho dữ liệu của họ. Trang web của họ là nguồn duy nhất cho dữ liệu của họ. Đã đến lúc phải dùng đến việc quét web cũ tốt, quy trình tự động để phân tích và trích xuất dữ liệu từ mã nguồn HTML của một trang web. JSOUP, một thư viện Java thực hiện đặc tả WhatWG HTML5, có thể được sử dụng để phân tích các tài liệu HTML, tìm và trích xuất dữ liệu từ các tài liệu HTML và thao tác các phần tử HTML. Đây là một thư viện tuyệt vời để quét web đơn giản vì tính chất đơn giản và khả năng phân tích HTML giống như cách trình duyệt để bạn có thể sử dụng các bộ chọn CSS thường được biết đến. Trong bài viết này, bạn sẽ học cách sử dụng JSOUP để quét web trong Java. Cài đặt JSOUPBài viết này sử dụng Maven làm hệ thống xây dựng, vì vậy hãy chắc chắn rằng nó đã được cài đặt. Lưu ý rằng bạn cũng có thể sử dụng JSOUP mà không cần Maven. Bạn có thể tìm thấy các hướng dẫn cho điều đó trên trang tải xuống JSOUP. Ứng dụng mà bạn sẽ xây dựng trong bài viết này có thể được tìm thấy trong GitHub nếu bạn muốn sao chép nó và làm theo, hoặc bạn có thể làm theo hướng dẫn để xây dựng ứng dụng từ đầu. Bắt đầu bằng cách tạo một dự án Maven:
Thư mục có tên 1 sẽ giữ các tệp dự án. Đối với phần còn lại của bài viết, bạn sẽ làm việc trong thư mục này.Chỉnh sửa tệp 2 và thêm JSoup làm phụ thuộc vào phần 3:
Bài viết này sử dụng phiên bản 4, đây là phiên bản mới nhất tại thời điểm viết. Kiểm tra phiên bản nào mới nhất khi bạn đọc nó bằng cách truy cập trang tải xuống JSOUP.Trong phần 5, thêm plugin Exec Maven:
Sử dụng JSOUPQuét web nên luôn luôn bắt đầu với một liên lạc của con người. Trước khi nhảy thẳng vào mã hóa, trước tiên bạn nên làm quen với trang web Target. Dành thời gian để nghiên cứu cấu trúc của trang web, tìm ra dữ liệu bạn muốn cạo và xem xét mã nguồn HTML để hiểu dữ liệu được đặt ở đâu và cách cấu trúc. Trong bài viết này, bạn sẽ cạo blog của ScrapingBee và thu thập thông tin về các blog được xuất bản: Tiêu đề, Liên kết, v.v ... Nó khá cơ bản, nhưng nó sẽ giúp bạn bắt đầu hành trình quét web của mình. Hãy bắt đầu khám phá trang web. Mở 6 trong trình duyệt của bạn và nhấp vào 7 để mở các công cụ nhà phát triển. Nhấp vào biểu tượng con trỏ nhỏ trên góc trên cùng bên trái của bảng điều khiển. Nếu bạn di chuột qua một phần tử trên trang web khi nó được bật, nó sẽ xác định vị trí phần tử đó trong mã HTML. Nó lưu bạn khỏi điều hướng thủ công thông qua tệp HTML để xác định mã nào tương ứng với các yếu tố nào. Công cụ này sẽ là bạn của bạn trong suốt hành trình cào.Di chuột qua bài viết trên blog đầu tiên. Bạn sẽ thấy rằng nó được đánh dấu trong bảng điều khiển và đó là 8 với lớp 9. Các blog khác bên cạnh nó là mỗi 8 với lớp 1.Bây giờ bạn có một cái nhìn tổng quan về cấu trúc rộng của dữ liệu mục tiêu trong trang web, đã đến lúc một số mã hóa. Mở tệp 2, xóa mã được tạo tự động và dán mã Boilerplate sau:
Phân tích cú pháp HTMLJSOUP hoạt động bằng cách phân tích HTML của một trang web và chuyển đổi nó thành một đối tượng tài liệu. Hãy nghĩ về đối tượng này như là một đại diện lập trình của DOM. Để tạo 3 này, JSOUP cung cấp phương thức 4 với nhiều quá tải có thể chấp nhận các loại đầu vào khác nhau.Một số người đáng chú ý như sau:
Tất cả các phương thức này trả về đối tượng phân tích cú pháp 3.Hãy xem cái cuối cùng trong hành động. Đầu tiên, nhập các lớp bắt buộc:
Trong phương thức 0, hãy viết mã sau:________số 8 Như bạn có thể thấy, một chuỗi HTML được chuyển trực tiếp đến phương thức 4. Phương thức 2 của đối tượng 3 trả về tiêu đề của trang web. Chạy ứng dụng bằng lệnh 4 và nó sẽ in 5.Đặt một chuỗi HTML được mã hóa cứng trong phương pháp 4 hoạt động, nhưng nó không thực sự hữu ích. Làm thế nào để bạn có được HTML từ một trang web và phân tích nó?Một cách là sử dụng lớp 7 để đưa ra yêu cầu cho trang web và chuyển 7 của phản hồi cho phương thức 4. Đây là một số mã mẫu để làm điều đó:
Lưu ý số lượng mã nồi hơi cần thiết chỉ để lấy HTML từ trang web. Rất may, JSOUP cung cấp một phương thức 0 thuận tiện hơn có thể kết nối với một trang web, lấy HTML và phân tích nó thành một 3 trong một lần.Chỉ cần chuyển URL sang phương thức 0 và nó sẽ trả về một đối tượng kết nối: 0Bạn có thể sử dụng đối tượng này để sửa đổi các thuộc tính yêu cầu, chẳng hạn như thêm tham số bằng phương thức dữ liệu, thêm các tiêu đề bằng phương thức tiêu đề, đặt cookie bằng phương thức cookie, v.v. Mỗi phương thức trả về một đối tượng 3, vì vậy chúng có thể bị xích: 1Khi bạn đã sẵn sàng thực hiện yêu cầu, hãy gọi phương thức 4 hoặc 5 của đối tượng 3. Điều này sẽ trả về đối tượng 3 phân tích cú pháp. Viết mã sau: 2Mã này đã được gói trong một khối thử vì phương pháp 4 có thể ném 9. Khi bạn chạy mã này, bạn sẽ thấy tiêu đề của trang web được in.Document document = Jsoup.parse(" |