由于cloudflare,无法从网址读取数据

时间:2016-08-24 15:48:57

标签: url cloudflare

每当我编译,我得到这个:

  

线程中的异常" main" java.io.IOException:服务器返回HTTP   响应代码:403表示URL:链接位于   sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知   来源)at   sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知   来自)java.net.URL.openStream(未知来源)at   readdata.aaa.main(aaa.java:15)

我的脚本是:

package readdata;

import java.net.*;
import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class aaa 
{
    public static void main(String[] args) throws Exception {

        URL oracle = new URL(" the link ");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(oracle.openStream()));

        String inputLine;
        StringBuilder a = new StringBuilder();
        while ((inputLine = in.readLine()) != null)
            a.append(inputLine);
        in.close();


        int i = 0;
        Pattern p = Pattern.compile("Open");
        Matcher m = p.matcher( a );
        while (m.find()) {
            i++;
            System.out.println(i);
        }
    }

}

无论如何我可以绕过cloudflare来读取URL中的数据吗?

1 个答案:

答案 0 :(得分:1)

URL oracle = new URL(" the link ");

插入:

System.setProperty("http.agent", "Chrome");

这可能是因为CloudFlare阻止了未知代理请求,因此此代码将User-Agent设置为CloudFlare识别的Chrome。