Я пытаюсь очистить страницу, которая использует Cloudflare, до недавнего времени это было возможно без проблем.Однако по состоянию на вчера я сталкиваюсь с 503 (страница защиты ddos).И сегодня оно перешло просто к 403-м годам.Изучив ответ, я вижу, что на странице запрашивается разрешение на использование файлов cookie.В настоящее время я использую HtmlUnit для выполнения очистки, и у меня для BrowserVersion установлено значение Chrome.
Вот моя текущая попытка:
private HtmlPage scrapeJS(String targetUrl) throws ScrapeException {
Log.verbose("Attempting JS scrape ...");
WebClient client = new WebClient(BrowserVersion.CHROME);
client.getOptions().setJavaScriptEnabled(true);
client.getOptions().setCssEnabled(css);
client.getOptions().setUseInsecureSSL(insecureSSL);
client.setCookieManager(new CookieManager());
client.getOptions().setRedirectEnabled(true);
HtmlPage page;
try {
page = client.getPage(targetUrl);
client.waitForBackgroundJavaScript(10000);
} catch (FailingHttpStatusCodeException e){
Log.verbose("JS scrape resulted in " + e.getStatusCode());
throw new ScrapeException(source, e);
} catch (IOException e){
throw new ScrapeException(source, e);
}
return page;
}
Я должен отметить, что это не проходит как проверку файлов cookie, так и503s на моем рабочем столе, но он проходит проверку файлов cookie не на моем ноутбуке (это Mac).
Я немного осмотрелся, но большинство постов, посвященных HtmlUnit, выглядят немного устаревшими и такие решения, какожидание фонового JS, не работает и не меняет пользовательский агент между firefox и chrome.