Я пытаюсь получить информацию из каталога с помощью JSoup, в ней всегда 9 столбцов в строке, 6-й столбец специально является заполнителем для того, когда вы вошли в систему, когда вы фактически вошли на сайт, в этом столбце отображается «цена ».
У меня есть следующее: (имя пользователя и пароль не показаны здесь)
Document doc = null;
String url;
Response res = Jsoup.connect("https://www.prisa.cl/home/?page=iniciaSesion")
.method(Method.GET)
.timeout(10000)
.execute();
String sessionID = res.cookie("PHPSESSID");
System.out.println(sessionID);
res = Jsoup.connect("https://www.prisa.cl/home/?page=iniciaSesion")
.data("email_address", username, "password", password)
.method(Method.POST)
.timeout(10000)
.execute();
sessionID = res.cookie("PHPSESSID");
System.out.println(sessionID);for(int page=1; page<=1; page++){
url = "https://www.prisa.cl/catalog/advanced_search_result.php"+ "?keywords=%20&enviar=&categories_id=&manufacturers_id=&pfrom=&pto=&sort=2a&&page="+page;
doc = Jsoup.connect(url)
.cookie("PHPSESSID", sessionID)
.timeout(10000)
.get();
for(Element table : doc.select("table table table table table")){
for(Element row : table.select("tr")){
Elements tds = row.select("td");
if(tds.size() == 9){
System.out.println(tds.select("img[src]").attr("src")+";"+
tds.get(1).text()+";"+
tds.get(2).text()+";"+
tds.get(3).text()+";"+
tds.get(4).text()+";"+
tds.get(5).text()+";"+
tds.get(6).text());
} //end if
} //rows
} //tables
System.out.println("finished page: "+page);
} //pages
я думаю / надеюсь, что здесь происходит:
1- Я получаю файл cookie PHPSESSID, пока не вошел в систему (для целей отладки)
2- Я получаю PHPSESSID снова во время входа в систему (имеет другие данные)
3. Я выполняю итерации для каждой страницы в каталоге (используется только 1 в приведенном выше коде) и пытаюсь отправить файл cookie PHPSESSID во время подключения, чтобы получить данные во время входа в систему.
4 — Ищем TR, который имеет 9 TD, при глубине 5 таблиц (макет страницы немного сбивает с толку)
Я очень новичок в этом, но я на самом деле искал пару дней несколько различных методов в переполнении стека и в документации JSoup, но безрезультатно.
Что я делаю неправильно?
Задача ещё не решена.
Других решений пока нет …