`

使用jsoup解析http/https协议网页内容通用方法

    博客分类:
  • java
阅读更多
import java.net.MalformedURLException;
import java.net.URL;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;

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;

import org.jsoup.Connection;
import org.jsoup.helper.HttpConnection;

public class HTTPCommonUtil {
	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();
		}
	}

	public static Object getHttpHeaders(URL url, int timeout) {
		try {
			trustEveryone();
			Connection conn = HttpConnection.connect(url);
			conn.timeout(timeout);
			conn.header("Accept-Encoding", "gzip,deflate,sdch");
			conn.header("Connection", "close");
			conn.get();
			Map<String, String> result = conn.response().headers();
			result.put("title", conn.response().parse().title());
			return result;

		} catch (Exception e) {
			//e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		try {
			URL url = new URL("https", "202.133.116.70", -1, "");
			System.out.println(getHttpHeaders(url, 10000));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论
1 楼 u010078032 2016-11-25  
jsoup好像不能访问https吧

相关推荐

    使用JSoup实现新闻网页正文抽取

    总之,使用JSoup实现新闻正文抽取是一个涉及到HTML解析、元素定位、内容提取以及可能的数据持久化的过程。通过熟练掌握JSoup的API,我们可以构建出高效、灵活的新闻爬虫系统,服务于数据分析、信息监控等多种应用...

    crawler4j抓取页面使用jsoup解析html时的解决方法

    通过以上步骤,我们就能确保`contentData`包含了正确编码的网页内容,从而在使用`jsoup`解析时避免乱码问题。当然,这只是一个通用的解决方案,实际情况可能更为复杂。如果页面编码不固定,可能需要更复杂的逻辑来...

    安卓网站交互JSONxmlWebserviceUPnP相关-一个爬昆明公积金网页数据的demo里面包括各个页面的链接通过链接拿到网页之后用Jsoup进行解析.rar

    2. 解析HTML内容,提取JSON或XML数据的链接,这一步可能用到了Jsoup库,这是一个Java的HTML解析库,可以方便地解析和操作HTML文档。 3. 通过链接获取JSON或XML数据,并使用JSON或XML解析库进行解析。 4. 可能涉及到...

    安卓网站交互JSONxmlWebserviceUPnP相关-用jsoup框架解析的一些东西里面解析了liBra等等的一些标签还用到了线程刷新的一些简单的操作项目很简单.rar

    在本项目中,开发者使用了jsoup框架来处理Android应用中的网站交互,涉及的主要知识点包括JSON数据解析、XML处理、Web服务(Webservice)通信以及UPnP(通用即插即用)技术。以下是对这些技术的详细介绍: 1. **...

    Java 爬虫工具Jsoup详解

    在实际开发中,将Jsoup解析HTML的功能抽象成通用工具类是常见的做法。通过传递不同的URL参数,可以灵活地获取不同的页面内容。例如,在电商平台中,商品详情页的URL通常包含了商品的唯一标识(如商品ID),通过改变...

    java实现网络爬虫

    总的来说,这个项目涵盖了网络爬虫的基本流程:从目标网页获取HTML,使用Jsoup解析并提取图片URL,将URL存入数据库,然后下载图片到本地。整个过程涉及到了HTTP请求、HTML解析、数据库操作以及文件I/O等多个Java编程...

    java实现的网页爬虫1.5版本聚焦爬虫抽取网页

    接着,使用HTML解析器如Jsoup,解析获取的HTML文档,提取出所需的信息,如链接、文本内容等。 聚焦爬虫的关键在于网页的选择策略。常见的策略包括基于关键词的匹配、URL模式匹配、TF-IDF算法、PageRank等。在1.5...

    自己动手写网络爬虫

    在Java中,可以使用Jsoup、HttpClient等库来帮助发送HTTP请求,并解析返回的HTML内容。 在抓取网页的过程中,我们可能会遇到各种HTTP状态码,它们表示服务器对请求的响应结果。例如,状态码200表示请求成功,而404...

    基于Java的网页爬虫 JSpider.zip

    1. **网络请求**:JSpider使用HTTP客户端库(如Apache HttpClient)发起网络请求,获取网页内容。这涉及到HTTP协议的理解,如GET、POST请求,以及Cookie、Session管理。 2. **HTML解析**:为了提取网页中的有用信息...

    WebMagic依赖包

    在WebMagic中,HttpClient用于发送HTTP请求,获取网页内容,支持HTTPS、代理、重试等高级特性。 3. **assertj-core-1.5.0.jar**:AssertJ提供了一套丰富的断言方法,用于编写更清晰、更富表达力的测试代码。在...

    风车通用Web采集程序在线版_dotnet整站程序.rar

    在.NET环境中,此类程序通常使用C#或VB.NET等编程语言编写,利用HTTP协议与目标网站交互,结合HTML解析技术(如HtmlAgilityPack或Jsoup)来提取所需信息。 首先,我们来深入了解Web采集程序的工作原理。Web采集的...

    用Java写的海贼王漫画爬虫

    例如,我们可以用Jsoup解析HTML源码,找出所有章节链接,然后逐个下载对应的漫画图片。 3. **多线程**:为了提高爬虫的效率,通常会采用多线程或者异步处理的方式。Java提供了并发库,如ExecutorService和Future,...

    Java爬虫程序

    1. **网络请求库**:如Apache HttpClient或OkHttp,它们提供了发送HTTP请求、设置请求头、处理响应等功能,是爬虫获取网页内容的基础。 2. **HTML解析**:如Jsoup库,它能够解析HTML文档,提取所需信息,如链接、...

    java爬取各大平台价格

    在Java中,可以使用Collections.sort()方法,结合自定义的Comparator来实现价格的比较和排序。 6. **文件组织**: 压缩包中的"com"文件可能包含了项目的源代码组织结构,通常在Java项目中,"com"是顶级包名,下面...

    实现slidingmenu,http请求,检查更新等的小android应用

    4. **HTML和XML解析**:在Android应用中,可能需要处理来自服务器的HTML或XML数据,例如获取网页内容、解析RSS feed等。对于HTML,可以使用`Jsoup`库进行解析,它提供了强大的选择器和DOM操作。对于XML,Android提供...

    实现网络爬虫所需jar包

    总结来说,实现一个Java Web网络爬虫,通常会用到如Servlet API、HttpClient、Jsoup、Json库、XPath解析库、通用工具库以及日志框架等jar包。这些库共同构成了网络爬虫的基本架构,帮助开发者高效、稳定地完成数据...

    java模拟http请求登陆抓取海投网信息

    这通常涉及到解析HTML或JSON响应,使用如Jsoup或Jackson等库进行解析。抓取的信息可能包括职位信息、公司简介等。 4. **字符编码**:由于中文字符的处理,数据库需要配置为GBK或UTF-8编码。GBK是中国大陆广泛使用的...

    java开源包3

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

Global site tag (gtag.js) - Google Analytics