Например: я использую getElementsByTagName("h1") -> он возвращает 1 значение, поэтому я знаю, какое значение я могу получить (в данном случае название шоу). Но когда я хочу получить рейтинг шоу, он спрятан в Div's, и его очень сложно найти. Поэтому я пытаюсь использовать getElementById(id элемента), чтобы получить элемент (div) этого идентификатора, чтобы сократить поиск.
Но он возвращает нулевое значение? Какой самый простой способ очистить такую страницу?
Вот фрагмент кода
public Final class IMDBExtractor {
Private String imdbId;
Код: Выделить всё
public IMDBExtractor(String imdbId) {
this.imdbId = imdbId;
}
public synchronized TvShow extractTvShow() throws IOException {
TvShow show = new TvShow();
//access imdb url
URL url = new URL("http://www.imdb.com/title/" + imdbId);
URLConnection uc = url.openConnection();
uc.addRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
uc.connect();
//Tidy up HTML
Tidy tidy = new Tidy();
tidy.setXmlOut(true);
tidy.setShowWarnings(false);
Document doc = tidy.parseDOM(uc.getInputStream(), null);
//Set show attributes
show.setImdbId(imdbId);
show.setTitle(extractSeriesName(doc));
show.setRating(extractRating(doc));
return show;
}
private String extractSeriesName(Document doc) throws IOException {
return doc.getElementsByTagName("h1").item(0).getChildNodes().item(0).getNodeValue();
}
private Double extractRating(Document doc) throws IOException {
System.out.println(doc.getElementById("content-2-wide").getNodeName());
return null;
}
В данном случае я пытаюсь очистить страницу:
Стрелка< /p>
Все страницы imdb имеют один и тот же макет, так что это не проблема. Ребята, вы знаете простой способ?>
Подробнее здесь: https://stackoverflow.com/questions/135 ... tml-values