Как применить блокировщик рекламы к HTML контенту, получаемому по Java HttpClient GET-запросу и анализируемому Jsoup? - PullRequest
0 голосов
/ 16 марта 2020

Я собираюсь ползти газету, статью. Однако я не хочу рекламу. Я хочу применить блок рекламы поверх моего запроса (аналогично просмотру веб-страниц вручную с включенным блоком рекламы, а затем сохранить страницу HTML без рекламы)

DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CloseableHttpClient httpClient = HttpClientBuilder.create()
   .setDefaultRequestConfig(this.config)
   .setRoutePlanner(routePlanner)
   .setSSLContext(sslContext)
   .setConnectionManager(cm)
   .setConnectionManagerShared(true)
   .build();

HttpGet getRequest = new HttpGet(url);
getRequest.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
                    try (CloseableHttpResponse response = httpClient.execute(getRequest)) {
                        String headerContentType = response.getFirstHeader("Content-Type").getValue();
                        if (headerContentType != null && headerContentType.contains("text/html")) {
                            HttpEntity entity = response.getEntity();
                            if (entity != null) {
                                content = EntityUtils.toString(entity, "utf-8");
                                EntityUtils.consume(entity);
                            }
                        } else {
                            // log fail event here
                        }
                    }

Теперь у меня String content как HTML содержание. Я анализирую содержимое с org.jsoup.Jsoup.

    Document contentDoc = Jsoup.parse(
            content
    );
    String contentstr = contentDoc.body()
            .getElementsByTag("p")
            .text();
...