java爬取:Scrape Center的ssr2

这个主要是没有ssl证书的问题。

package book;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import javax.net.ssl.*;
import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

//http证书问题
public class Test2 {
    public static void main(String[] args) throws Exception{
        //设置url
        String url = "https://ssr2.scrape.center/page/1";
        Test2 t = new Test2();
        System.out.println(t.parseJsoup(url));
    }

    public String parseJsoup(String url) throws IOException {
        //第一种方法不验证ssl证书
        //Document document = Jsoup.connect(url).validateTLSCertificates(false).get();
        //第二种方法创建自己的证书
        initUnSecureTSL();
        Document document = Jsoup.connect(url).get();
        return document.html();
    }

    //初始化信任管理器,不验证证书
    private static void initUnSecureTSL()  {
        // 创建信任管理器(不验证证书)
        final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {

            //检查客户端证书
            @Override
            public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                //do nothing 接受任意客户端证书
            }

            //检查服务器端证书
            @Override
            public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                    //do nothing  接受任意服务端证书
            }
            //返回受信任的X509证书
            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];//或者return null;
            }
        }};
        try {
            // 创建SSLContext对象,并使用指定的信任管理器初始化
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
            基于信任管理器,创建套接字工厂 (ssl socket factory)
            SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
            //给HttpsURLConnection配置SSLSocketFactory
            HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值