Я пытаюсь очистить некоторые данные со следующей веб-страницы: https://bitcoin.pl/ Я получаю ответ от сервера и извлекаю тело.Я хочу извлечь ссылки из тела.Однако не может этого сделать, потому что тело не было правильно декодировано и содержит escape-символы.
Я пробовал некоторые решения из следующего:
Как отменить отображение символов HTML в Java?
https://howtodoinjava.com/java/string/unescape-html-to-string/
Ниже приведен код, который я написал:
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class test_scraper {
public static void main(String[] args) throws Exception {
final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36";
Unirest.setDefaultHeader("User-Agent",USER_AGENT);
final HttpResponse<String> response = Unirest.post("https://bitcoin.pl/?ajax-request=jnews")
.header("Accept","application/json, text/javascript, */*; q=0.01")
.header("Content-Type","application/x-www-form-urlencoded; charset=UTF-8")
.header("Referer","https://bitcoin.pl/")
.header("user-agent",USER_AGENT)
.header("accept-language", "en-US,en;q=0.9")
.header("X-Requested-With","XMLHttpRequest")
.header("accept-encoding:", "gzip, deflate, br")
.queryString("lang","pl_PL")
.queryString("action","jnews_module_ajax_jnews_block_5")
.queryString("data[current_page]",2)
.queryString("data[attribute][number_post]", 1)
.asString();
//System.out.println(response.getHeaders());
//System.out.println(response.getBody());
final Document html = Jsoup.parseBodyFragment(response.getBody());
System.out.println(Jsoup.parse(response.getBody()));
}
}
Я получаю точно такой же ответ, как в браузере (режим инспектора -> Сеть -> XHR ->Ответ) однако я хочу получить HTML из предварительного просмотра, который уже декодирован.
Что я получаю (часть ответа):
<html>
<head></head>
<body>
{"content":"
<div class="\"jeg_posts" jeg_load_more_flag\">
\n
<article class="\"jeg_post" jeg_pl_lg_2 post-9771 post type-post status-publish format-standard has-post-thumbnail hentry category-kryptowaluty tag-bitcoin tag-chinski-bank-ludowy tag-chinski-banki-centralny tag-chiny tag-cyfrowa-waluta tag-libra tag-token-pboc\">
\n
<div class="\"jeg_thumb\"">
\n \n
<a href="\"https:\/\/bitcoin.pl\/chiny-data-emisji-waluty\/\""></a>
<div class="\"thumbnail-container" animate-lazy size-715 \">
<a href="\"https:\/\/bitcoin.pl\/chiny-data-emisji-waluty\/\""><img width="\"350\"" height="\"250\"" src="\"https:\/\/bitcoin.pl\/wp-content\/themes\/jnews\/assets\/img\/jeg-empty.png\"" class="\"attachment-jnews-350x250" size-jnews-350x250 lazyload wp-post-image\" alt="\"chiny\"" data-src="\"https:\/\/bitcoin.pl\/wp-content\/uploads\/2019\/09\/chiny-350x250.jpg\"" data-sizes="\"auto\"" data-srcset="\"https:\/\/bitcoin.pl\/wp-content\/uploads\/2019\/09\/chiny-350x250.jpg" 350w, https:\ \ bitcoin.pl\ wp-content\ uploads\ 2019\ 09\ chiny-120x86.jpg 120w, chiny-750x536.jpg 750w\" data-expand="\"700\"" data-animate="\"0\""><\/div><\/a>\n
<div class="\"jeg_post_category\"">
\n
<span><a href="\"https:\/\/bitcoin.pl\/category\/kryptowaluty\/\"" class="\"category-kryptowaluty\"">Kryptowaluty<\/a><\/span>\n <\/div>\n <\/div>\n </a>
Как правильно декодировать выше, чтобы получить правильный HTML?