2014-06-23 21 views
6

Tôi muốn phát triển trình thu thập dữ liệu web trong Groovy (sử dụng khung Grails và cơ sở dữ liệu MongoDB) có khả năng thu thập dữ liệu trang web, tạo danh sách URL trang web và loại tài nguyên của chúng , thời gian phản hồi và số lượng chuyển hướng có liên quan.Trình thu thập thông tin trong Groovy (JSoup VS Crawler4j)

Tôi đang tranh luận về JSoup và Crawler4j. Tôi đã đọc về những gì họ về cơ bản nhưng tôi không thể hiểu rõ sự khác biệt giữa hai người. Bất cứ ai có thể đề xuất đó sẽ là một tốt hơn cho các chức năng trên? Hoặc là nó hoàn toàn không chính xác để so sánh hai?

Cảm ơn.

Trả lời

13

Crawler4J là trình thu thập thông tin, Jsoup là một trình phân tích cú pháp. Trên thực tế bạn có thể/nên sử dụng cả hai. Crawler4J là giao diện đa luồng dễ dàng để nhận tất cả các url và tất cả các trang (nội dung) của trang web bạn muốn. Sau đó, bạn có thể sử dụng Jsoup để phân tích dữ liệu, với bộ chọn css tuyệt vời (giống như jquery) và thực sự làm điều gì đó với nó. Tất nhiên bạn phải xem xét nội dung động (javascript được tạo). Nếu bạn muốn nội dung đó quá, thì bạn phải sử dụng một cái gì đó khác bao gồm một công cụ javascript (trình duyệt không đầu + phân tích cú pháp) như htmlunit hoặc webdriver (selenium), sẽ thực thi javascript trước khi phân tích cú pháp nội dung.

+1

Tôi đã nghĩ chính xác như vậy. Tôi thực sự cần cả trình thu thập thông tin và trình phân tích cú pháp. Trình thu thập thông tin có thể là trình thu thập thông tin4j nhưng đối với trình phân tích cú pháp tôi không rõ ràng. JSoup là rất nhiều "Groovier" hơn các trình phân tích cú pháp khác. Htmlunit thất bại trong một số trường hợp mà có "bất cứ điều gì ngoài tầm thường" javascript. Ngoài ra, từ đánh giá của người dùng, rõ ràng là nó hoạt động trên <50% trang web. –

+1

Có thể là trình quản lý web sau đó. Tôi đã không sử dụng nó, nhưng tôi đã nghe những điều tuyệt vời. – alkis

+1

Tôi đã xem xét tích hợp trình điều khiển web selen với JSoup. Cám ơn vì sự gợi ý. –

Các vấn đề liên quan