Я использую Jsoup для извлечения HTML с веб-сайта Godaddy. Я хочу извлечь этот конкретный сегмент ниже. У меня есть как конкретный сегмент последней веб-страницы, где говорится: «Извините, google.com занят», так и сам HTML-код.


Однако в моей программе есть следующее:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class test {
public static void main(String[] args) throws IOException {
String url = "https://www.godaddy.com/dpp/find?checkAvail=1&tmskey=&domainToCheck=google";
Document document = Jsoup.connect(url).get();
Element div = document.getElementById("searchResults");
Elements spans = div.select("span");
for (Element e: spans)
System.out.println(e.text());
}
}
Однако этот код выводит исключение NullPointerException. Я знаю, что JSoup не может работать с JS, но это HTML и почему-то не извлекается. Я также попытался извлечь весь HTML-код со страницы, и он не содержит этих слов.
Может ли кто-нибудь указать мне в правильном направлении или дать мне другой способ извлечь эту информацию из godaddy?
@PedroLobito Буду благодарен.




Прежде всего, URL-адрес, который вы предоставили, перенаправляет в другое место, поэтому вам нужно будет следовать перенаправлениям:
Document document = Jsoup.connect(url).followRedirects(true).get()
Но даже это не решит вашу проблему. Чтобы показать, доступен ли домен, веб-сайт использует javascript для получения данных с сервера. Теперь этот запрос не будет выполнен, поскольку он исходит из неизвестного источника.
Короче говоря, Педро прав, вы должны использовать API.
Не могли бы вы указать мне, как использовать API Godaddy? Я бы хотел включить его в Java.
godaddy предоставляет REST api, так что вы узнали, что это такое и как использовать их в JAVA. mkyong.com/webservices/jax-rs/…
Используйте API Godaddy - developer.godaddy.com