#java #url #caching #jsoup
#java #url #кэширование #jsoup
Вопрос:
public void conectUrl() throws IOException, InterruptedException {
product= new ArrayList<>();
String url = "https://www.continente.pt/stores/continente/pt-pt/public/pages/category.aspx?cat=campanhas#/?page=1amp;sf=Revelance";
page = Jsoup.connect(url).userAgent("JSoup scraper").get();
//get actual page
Elements paginaAtu=page.getElementsByClass("_actualPage");
paginaAtual=Integer.parseInt(paginaAtu.attr("value"));
//get Total Pages
Elements nextPage=page.getElementsByClass("_actualTotalPages");
numPaginas =Integer.parseInt(nextPage.attr("value"));
for(paginaAtual=1;paginaAtual<numPaginas;paginaAtual ) {
getProductInfo("https://www.continente.pt/stores/continente/pt-pt/public/pages/category.aspx?cat=campanhas#/?page=" paginaAtual "amp;sf=Revelance");
}
}
Всегда возвращает один и тот же результат с другим URL. Я уже искал информацию о кэше jsoup, я не первый, кто задает этот вопрос, однако никто не говорит, как разрешить ситуацию. Теоретически, JSoup не кэширует URL-страницы…
Я уже выполнял код «sleep» в течение 30 секунд, чтобы загрузить новый URL, однако все еще не работает, возвращает всегда один и тот же результат.
Кто-нибудь может мне помочь? Заранее благодарю вас.
Комментарии:
1. Почему вы используете ‘Jsoup scraper’ в качестве своего пользовательского агента? Почему вы не используете пользовательский агент своего браузера?
2. Это решено, я не могу использовать Jsoup для навигации по веб-странице, jsoup предназначен только для проверки текущего URL, поэтому для решения этой проблемы я должен использовать библиотеку, подобную Selenium, которая отлично работает с моим браузером для взаимодействия со страницей и предоставления результата в качестве аргумента JSOUP. Спасибо вам, ребята!
3. Не совсем верно @MdaCosta. Ваш браузер выдает / обрабатывает HTTP-запросы. JSoup ведет себя аналогично браузеру, но гораздо более прост. Если вы знаете, что искать, вы обычно можете использовать JSoup / HtmlUnit некоторые ноу-хау для создания скребка, который будет работать. Говоря это, трудно ответить на ваш вопрос, не зная, что
getProductInfo
делает