Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HtmlUnit绕过cloudflare DDOS,需要cookies_Java_Web Scraping_Htmlunit - Fatal编程技术网

Java HtmlUnit绕过cloudflare DDOS,需要cookies

Java HtmlUnit绕过cloudflare DDOS,需要cookies,java,web-scraping,htmlunit,Java,Web Scraping,Htmlunit,我正在尝试创建一个使用Cloudflare的页面,直到最近,这还是可能的,没有任何问题。但是,截至昨天,我遇到了503(ddos保护页面)。而今天,它仅仅转变为403。检查响应时,我可以看到页面正在请求我启用cookies。我目前正在使用HtmlUnit执行刮片,我将BrowserVersion设置为Chrome 以下是我目前的尝试: private HtmlPage scrapeJS(String targetUrl) throws ScrapeException {

我正在尝试创建一个使用Cloudflare的页面,直到最近,这还是可能的,没有任何问题。但是,截至昨天,我遇到了503(ddos保护页面)。而今天,它仅仅转变为403。检查响应时,我可以看到页面正在请求我启用cookies。我目前正在使用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;
    }
我应该提到的是,这使我的桌面上的cookies检查和503s都失败了,但它通过了cookies检查,而不是我的笔记本电脑(它是mac)


我看了一些关于HtmlUnit的帖子,但是大多数帖子看起来都有点过时,解决方案,比如等待后台JS,都不起作用,在firefox和chrome之间更改用户代理也不起作用

可能是因为SSLDE,它是不是第一次请求失败,还是只有在多次请求后才失败?嘿,Erik,你找到解决方案了吗?我也遇到了同样的问题:)@SpasBobchev我没有,最终找到了一个绕过此问题的站点API