Tôi rất mới thu thập dữ liệu web này. Tôi đang sử dụng crawler4j để thu thập thông tin các trang web. Tôi đang thu thập thông tin được yêu cầu bằng cách thu thập thông tin các trang web này. Vấn đề của tôi ở đây là tôi không thể thu thập nội dung cho trang web sau. http://www.sciencedirect.com/science/article/pii/S1568494612005741. Tôi muốn thu thập thông tin sau từ trang web nói trên (Vui lòng xem ảnh chụp màn hình đính kèm).Thu thập thông tin web (các trang được bật Ajax/JavaScript) bằng cách sử dụng java
Nếu bạn quan sát các ảnh chụp màn hình kèm theo nó có ba tên (Nổi bật trong hộp màu đỏ). Nếu bạn nhấp vào một liên kết, bạn sẽ thấy cửa sổ bật lên và cửa sổ bật lên đó chứa toàn bộ thông tin về tác giả đó. Tôi muốn thu thập dữ liệu thông tin có trong cửa sổ bật lên đó.
Tôi đang sử dụng mã sau để thu thập nội dung.
public class WebContentDownloader {
private Parser parser;
private PageFetcher pageFetcher;
public WebContentDownloader() {
CrawlConfig config = new CrawlConfig();
parser = new Parser(config);
pageFetcher = new PageFetcher(config);
}
private Page download(String url) {
WebURL curURL = new WebURL();
curURL.setURL(url);
PageFetchResult fetchResult = null;
try {
fetchResult = pageFetcher.fetchHeader(curURL);
if (fetchResult.getStatusCode() == HttpStatus.SC_OK) {
try {
Page page = new Page(curURL);
fetchResult.fetchContent(page);
if (parser.parse(page, curURL.getURL())) {
return page;
}
} catch (Exception e) {
e.printStackTrace();
}
}
} finally {
if (fetchResult != null) {
fetchResult.discardContentIfNotConsumed();
}
}
return null;
}
private String processUrl(String url) {
System.out.println("Processing: " + url);
Page page = download(url);
if (page != null) {
ParseData parseData = page.getParseData();
if (parseData != null) {
if (parseData instanceof HtmlParseData) {
HtmlParseData htmlParseData = (HtmlParseData) parseData;
return htmlParseData.getHtml();
}
} else {
System.out.println("Couldn't parse the content of the page.");
}
} else {
System.out.println("Couldn't fetch the content of the page.");
}
return null;
}
public String getHtmlContent(String argUrl) {
return this.processUrl(argUrl);
}
}
Tôi có thể thu thập nội dung từ liên kết/trang web đã đề cập ở trên. Nhưng nó không có thông tin mà tôi đánh dấu trong các ô màu đỏ. Tôi nghĩ đó là những liên kết động.
- Câu hỏi của tôi là làm cách nào để thu thập nội dung từ liên kết/trang web đã nói trên ... ???
- Cách thu thập nội dung từ các trang web dựa trên Ajax/JavaScript ... ???
Bất kỳ ai cũng có thể giúp tôi về vấn đề này.
Cảm ơn & Kính trọng, Amar
r u có giải pháp cho câu hỏi này.? – BasK
tôi không biết cái nào đang bắt đầu và kết thúc. u có thể giải thích mã ngắn gọn và giải thích? – BasK