Chỉ cần sử dụng một simple HTML parser, như jTidy, và sau đó get all elements by tag nameimg
và sau đó thu thập các src
thuộc tính của mỗi người theo một List<String>
hoặc có thể List<URI>
.
Bạn có thể nhận được InputStream
của URL
bằng cách sử dụng URL#openStream()
và sau đó cấp dữ liệu cho bất kỳ trình phân tích cú pháp HTML nào bạn muốn sử dụng. Dưới đây là ví dụ về khởi động:
InputStream input = new URL("http://www.stackoverflow.com").openStream();
Document document = new Tidy().parseDOM(input, null);
NodeList imgs = document.getElementsByTagName("img");
List<String> srcs = new ArrayList<String>();
for (int i = 0; i < imgs.getLength(); i++) {
srcs.add(imgs.item(i).getAttributes().getNamedItem("src").getNodeValue());
}
for (String src: srcs) {
System.out.println(src);
}
Tuy nhiên, tôi phải thừa nhận rằng HtmlUnit được Bozho đề xuất thực sự trông đẹp hơn.
Bạn có cần chương trình hoặc thư viện không? –
Làm thế nào bạn có nghĩa là xin lỗi? Tôi chỉ cần một tập tin .jar hoặc một cái gì đó mà tôi có thể liên kết vào một chương trình Java hiện có Im viết. Id tưởng tượng chương trình sẽ khá đơn giản, tôi chỉ cần thao tác trích xuất ảnh – Phil
Tôi không nghĩ rằng bạn sẽ tìm thấy bất kỳ thư viện nào phù hợp chính xác với kịch bản của bạn. Bạn sẽ phải sử dụng một trình phân tích cú pháp và tự mình viết một số mã tải xuống. – craftsman