Я хочу, чтобы страница HTML из мета-обновления была перенаправлена так же, как в вопросе can jsoup handle meta refresh redirect.Jsoup meta refresh redirect
Но я не могу заставить его работать. Я хочу сделать поиск по http://synchronkartei.de. У меня есть следующий код:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class SynchronkarteiScraper {
public static void main(String[] args) throws Exception{
Document doc = Jsoup.connect("https://www.synchronkartei.de/search.php")
.data("cat", "2")
.data("search", "Thomas Danneberg")
.data("action", "search")
.followRedirects(true)
.get();
Elements meta = doc.select("html head meta");
for (final Element m : meta){
if (m.attr("http-equiv").contains("refresh")){
doc = Jsoup.connect(m.baseUri()+m.attr("content").split("=")[1]).get();
}
}
System.out.println(doc.body().toString());
}
}
Это поиск, что приводит к временному сайту, который получает обновился открывает реальный результат страницу. Это то же самое, что и для http://synchronkartei.de, выбрав «Sprecher» из выпадающего списка, введя «Thomas Danneberg» в текстовое поле и нажав Enter.
Но даже после извлечения URL-адреса обновления и второго подключения я до сих пор получаю содержимое временной целевой страницы, которое можно увидеть в принтере тела.
Итак, что здесь не так?
В качестве примечания, сайт synchronkartei.de всегда перенаправляется на HTTPS. И поскольку он использует сертификат от StartCom, java жалуется на путь сертификата. Чтобы использовать вышеприведенный фрагмент кода, необходимо использовать параметр VM -Djavax.net.ssl.trustStore=<path-to-keystore>
с правильным сертификатом.
Со вчерашнего Synchronkartei поддерживает '/? Д = {SEARCHTERM}' без печенья или перенаправления. – Funzi
Спасибо за помощь. Выполнение этого с помощью файлов cookie. Но у меня есть вопрос о методе '/? Q = {searchTerm}. Я не привык к OpenSearchDescriptions, так что извините, возможно, тупой вопрос. Можно ли искать только одну строку или есть способ еще больше отфильтровать результат, чтобы получить, например, только участников с данной строкой поиска (как в примере в моем исходном сообщении)? – radlan
Привет радлан, на данный момент нет возможности фильтровать ваши результаты для актеров или фильмов при использовании /? Q = {searchTerm}. Но если вы используете /search.php?cat={category}&search={searchterm}, вы можете заменить категорию на 1 (Все), 2 (голос актеров), 3 (киноактеры), 4 (фильмы), 5 (ТВ серия) и 6 (участие в кино). – Funzi