webmagic在tomcat上https报错问题
来源:互联网 发布:淘宝店铺里的图片变形 编辑:程序博客网 时间:2024/06/06 08:53
我是直接把process中的page.getHtml()替换为我自己得到的
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;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.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Spider;import us.codecraft.webmagic.processor.PageProcessor;import us.codecraft.webmagic.selector.Html;public class TestWebMagic implements PageProcessor{private static Html html;private static String baseUrl;@Overridepublic void process(Page page) {//https协议得到页面htmlhtml = new Html(getHtmlByHttps(baseUrl, "UTF-8"));System.out.println(html);page.putField("imgs", html.$("img", "src-medium").regex(".*800x800.jpg.*").all());}@Overridepublic Site getSite() {return Site.me().setRetryTimes(3).setSleepTime(1000);} public static String getHtmlByHttps(String u, String encoding){ try { SSLContext sc = SSLContext.getInstance("SSL", "SunJSSE"); sc.init(null, new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } } }, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String arg0, SSLSession arg1) { return true; } }); SSLSocketFactory ssf = sc.getSocketFactory(); URL url = new URL(null, u, new sun.net.www.protocol.https.Handler()); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(ssf); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("GET"); conn.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding)); StringBuffer sb = new StringBuffer(); String line; while ((line = br.readLine()) != null) sb.append(line); return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }public static void main(String[] args) {baseUrl = "https://product.suning.com/0070137013/149868717.html";// 创建默认的httpClient实例 Spider.create(new TestWebMagic()) .addUrl("http://fanyi.baidu.com")//随便写个html协议可以得到的链接 //启动爬虫 .run(); }}
阅读全文
0 0
- webmagic在tomcat上https报错问题
- https在weblogic下访问报错,jboss和tomcat下好使
- axis2在was7.0上的报错问题
- matlab 7.0在win10上卸载报错问题
- tomcat启动报错-问题
- Tomcat 启动报错问题
- Mac上tomcat使用https
- tomcat部署上之后,运行报错
- eclipse生成war包,部署在tomcat上,报错404
- 相同的项目在不同版本的tomcat上部署启动报错: java.lang.AbstractMethodError
- Springmvc框架的项目在一个tomcat服务器上,项目冲突,报错webAppRootKey错误
- Nginx + Tomcat + HTTPS 配置原来不需要在 Tomcat 上启用 SSL 支持
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
- Nginx + Tomcat + HTTPS 配置原来不需要在 Tomcat 上启用 SSL 支持
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
- 关于在tomcat上部署项目问题
- 关于Tomcat配置https/SSL报“No Certificate file specified or invalid file format”的问题
- 在eclipse中启动tomcat报错
- win10--L2TP教程
- Java中的经典算法之冒泡排序(Bubble Sort)
- 算法爱好者——算法题:加油站 ? 待解决
- python---POST/GET请求数据包,图片验证码自动化识别,pytesseract,模拟用户一次正常登录
- 整体二分(二分进阶)
- webmagic在tomcat上https报错问题
- ES6的资料放送
- 【学术篇】SDOI2008 沙拉公主的困惑
- 【js基础】js基础巩固——DOM操作(四)
- 算法学习——贪心算法实践
- 线性筛
- 空间复杂度O(1)的两个有序序列的归并
- alsa
- java 反射