JSOUP не загружает полный HTML, если веб-страница имеет большой размер. Есть ли альтернативы этому или какие-либо обходные пути?
Я пытался получить HTML-страницу и разобрать информацию. Я только что узнал, что некоторые страницы не были полностью загружены с помощьюJsoup
, Я проверил сcurl
команда в командной строке, тогда полная страница была загружена. Сначала я думал, что это специфично для сайта, но потом я просто попытался случайным образом проанализировать любую большую веб-страницу, используяJsoup
и обнаружил, что он не загрузил полную веб-страницу. Я попытался указать пользовательский агент и свойства времени ожидания, но его не удалось загрузить. Вот код, который я пробовал:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class JsoupTest {
public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException, IOException {
String urlStr = "http://en.wikipedia.org/wiki/List_of_law_clerks_of_the_Supreme_Court_of_the_United_States";
URL url = new URL(urlStr);
String content = "";
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
for (String line; (line = reader.readLine()) != null;) {
content += line;
}
}
String article1 = Jsoup.connect(urlStr).get().text();
String article2 = Jsoup.connect(urlStr).userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").referrer("http://www.google.com").timeout(30000).execute().parse().text();
String article3 = Jsoup.parse(content).text();
System.out.println("ARTICLE 1 : "+article1);
System.out.println("ARTICLE 2 : "+article2);
System.out.println("ARTICLE 3 : "+article3);
}
}
В статьях 1 и 2, когда я использую Jsoup для подключения к веб-сайту, я не получаю полную информацию, но при использованииURL
для подключения я получаю полную страницу. Таким образом, в основном статья 3 завершена, что было сделано с использованиемURL
, Я пробовал сJsoup 1.8.1
а такжеJsoup 1.7.2