JSOUP 抓取HTTPS/HTTP网页,校验问题
2018-03-21 10:43
561 查看
近日本人正在做一个小型的网络爬虫项目,用的就是经过分析,最终选择了jsoup来做页面分析工具,爬取数据。针对一般的http请求是不需要的校验的。但是https安全校验过总过不去。最后找到以下方法,终于成功。 让我们的站点信任所有站点,不需要引包,系统自带ssl证书校验,话不多数,贴代码。 /*** 信任任何站点,实现https页面的正常访问**/public static void trustEveryone() {try {HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {public boolean verify(String hostname, SSLSession session) {return true;}});SSLContext context = SSLContext.getInstance("TLS");context.init(null, new X509TrustManager[] { new X509TrustManager() {public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}} }, new SecureRandom());HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());} catch (Exception e) {// e.printStackTrace();}} 以下是引用的类,大家被搞错了。import java.io.UnsupportedEncodingException;import java.security.SecureRandom;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import javax.net.ssl.X509TrustManager;然后就是使用了 ,在需要进行创建请求对象之前加入这个方法就行。实例:trustEveryone();Connection conn = HttpConnection2.connect(url);conn.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");conn.header("Accept-Encoding", "gzip, deflate, br");conn.header("Accept-Language", "zh-CN,zh;q=0.9");conn.header("Cache-Control", "max-age=0");conn.header("Connection", "keep-alive");conn.header("Host", "blog.maxleap.cn");conn.header("Upgrade-Insecure-Requests", "1");conn.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36");Document doc = null;好了,然后就可以正常访问了。亲测有效,这是目前我正在使用的方法。
相关文章推荐
- 关于网页抓取信息 Jsoup 和 HttpUnit 的使用
- Jsoup抓取网页内容超时问题的处理
- httpclient抓取https网页数据
- Java、C#双语版HttpHelper类(解决网页抓取乱码问题)
- HttpClient+jsoup实现网页数据抓取和处理
- 解决Jsoup网页抓取过程中需要cookie的问题
- Java、C#双语版HttpHelper类(解决网页抓取乱码问题)
- 使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题
- httpclient自动获取页面编码,解决网页抓取乱码问题
- 关于Jsoup解析https网页的问题
- HttpClient+Jsoup 抓取网页信息(网易贵金属为例)
- HttpClient + Jsoup 网页数据抓取
- httpclient 网页抓取 几个问题
- 使用java7的try-resource-wi 3ff0 th语法用httpclient抓取网页并用jsoup获取网页对象
- Http,Jsoup抓取网页内容-by TomHawk
- 使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题
- HttpClient+Jsoup 抓取网页信息
- 使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题
- 抓取网页登录问题解决Code(非验证码)
- apache HttpClient 4.3.4自动登录并抓取中国联通网页用户基本信息和账单数据