`

Java抓取URL指定的HTML内容

阅读更多
通过Java获取到URL指定的内容,如果有目标数据可以再写代码解析获取到的内容
package com.boonya;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;

public class WebCapturer {
	
	/**
	 * 根据用户获取的网络地址获取该网页的内容
	 * @param myURL  地址
	 *    如:"http://www.google.com.hk/search?q=biao"
	 * @return
	 */
	@SuppressWarnings("resource")
	public static String getHtmlByURL(String myURL){
		URL url=null;
		String htmlContext="";
		try {
			url = new URL(myURL);
			HttpURLConnection conn;
			try {
				conn = (HttpURLConnection) url.openConnection();
				conn.setRequestProperty("User-Agent", // 很重要
						"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) "
								+ " Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");
				conn.setRequestMethod("GET");
				Scanner scanner = new Scanner(conn.getInputStream());
				while (scanner.hasNextLine()) {
					htmlContext+=scanner.nextLine();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		return htmlContext;
		
	}

	public static void main(String[] args) throws Exception {
		System.out.println(WebCapturer.getHtmlByURL("http://www.google.com.hk/search?q=biao"));
	}
}

分享到:
评论
3 楼 boonya 2013-05-22  
boonya 写道
加https://前缀表明是用SSL加密的

http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
2 楼 boonya 2013-05-22  
加https://前缀表明是用SSL加密的
1 楼 ccscu 2013-05-17  
如果是https://开头的,提示这个错误
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching developer.chrome.com found.
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1764)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
at com.bes.net.WebCapture.getHtmlByURL(WebCapture.java:29)
at com.bes.net.WebCapture.main(WebCapture.java:44)
Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching developer.chrome.com found.
at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:193)
at sun.security.util.HostnameChecker.match(HostnameChecker.java:77)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:264)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:250)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
... 13 more

相关推荐

    java抓取任何指定网页的数据

    ### Java抓取任何指定网页的数据 #### 知识点概览 本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据...

    java简单抓取网页内容

    2. **解析HTML内容**: Jsoup是一个非常流行的Java库,用于处理HTML。它可以方便地解析、查询和修改HTML。首先,添加Jsoup依赖,然后解析HTML字符串,使用CSS选择器或其他方法提取信息。 ```java Document doc = ...

    java网络编程抓取指定网页信息--UrlHtml(java源码)

    import java.net.URL; public class UrlHtml { @SuppressWarnings("deprecation") public static void main(String[] s) throws IOException{ try { URL url = new URL("http://www.kum.net.cn"); ...

    Java抓取网页数据Demo

    本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...

    java抓取网页内容源代码

    ### Java抓取网页内容源代码解析与扩展 在IT领域,网页抓取(或称网络爬虫)是一项关键技能,广泛应用于数据收集、市场分析、搜索引擎优化等多个方面。本篇文章将深入探讨一个Java编写的网页内容抓取代码,旨在帮助...

    java抓取网页内容--生成静态页面

    要将抓取的HTML内容保存为静态页面,我们需要使用`java.io`包中的类。`File`类用于表示文件或目录路径名,而`FileWriter`和`PrintWriter`则用于写入内容到文件。`FileWriter`用于创建或追加文件,`PrintWriter`则...

    java网络爬虫抓取网页数据

    在实际的网络爬虫项目中,可能还需要处理反爬虫策略(如User-Agent、验证码)、异步抓取(多线程或异步IO)、数据清洗和预处理,以及持久化爬虫状态(如已抓取URL的存储)。此外,为了不违反网站的robots.txt协议和...

    【Java】获取指定HTML 文档指定的body、页中超链接的标题和链接、指定博客文章的内容

    本教程将聚焦于如何从HTML文档中提取特定信息,包括HTML文档的body内容、页面中的超链接标题与链接,以及指定博客文章的内容。我们将探讨以下几个关键知识点: 1. **解析HTML文档**: - 使用库:为了解析HTML,...

    java 使用URL访问网页

    在Java编程语言中,访问网页是一项基本操作,通常用于数据抓取、自动化测试或网络通信。本篇文章将详细讲解如何使用Java的内置类`java.net.URL`和相关API来实现这个功能。 首先,我们需要理解`URL`(Uniform ...

    java利用url实现网页内容的抓取

    Java语言提供了丰富的库来实现网页内容的抓取,其中URL(Uniform Resource Locator)类是Java标准库中的核心组件,用于处理网络资源的访问。本文将详细介绍如何利用Java的URL类来实现网页内容的抓取。 首先,我们...

    Jsp抓取页面内容

    本文将详细介绍如何使用JSP来抓取并显示指定网页的内容。 #### 二、基础知识 1. **JSP简介**: - JSP(JavaServer Pages)是一种基于Java的服务器端脚本语言,用于生成动态网页内容。 - JSP页面由HTML标签与嵌入...

    使用java的html解析器实现自动重复抓取任意网站页面.pdf

    - **指定URL和目标元素**:通过Jsoup的`connect()`方法指定要抓取的URL,并使用CSS选择器定位需要的元素。 - **处理相对路径**:抓取的链接可能使用相对路径,需将其转换为绝对路径。 - **处理图片路径和尺寸**:...

    对指定页面进行抓取

    在本场景中,我们讨论的是使用Java中的HttpURLConnection类来实现对指定网页内容的抓取。这是一种基础的网络请求方法,适用于小型项目或学习网络爬虫的初级阶段。 首先,了解`HttpURLConnection`是Java标准库中的一...

    java http方式抓取网页信息 JAVAIO

    这个例子中,`HttpURLConnection`被用来建立到指定URL的连接,然后设置请求方法为GET。`getInputStream()`方法用于读取响应内容,而`BufferedReader`则用于逐行读取输入流。最后,内容被写入名为"output.txt"的本地...

    java爬虫webmagic抓取静态页面demo

    Java爬虫WebMagic是开发者常用来抓取网页数据的一个强大工具,尤其对于处理静态页面,它的易用性和灵活性使得在Java开发环境中非常受欢迎。WebMagic的设计理念是模块化,这使得我们可以灵活地组合各个组件来实现不同...

    网页抓取DEMO-可以运行的一个java项目

    - **解析**:`crawl`方法负责从指定的URL地址抓取网页内容。通过`HttpURLConnection`建立连接,并使用`BufferedReader`逐行读取网页数据。此外,`testCrawl`方法提供了一个简单的测试入口,用于验证抓取功能是否...

    java抓取网站数据.pdf

    ### Java抓取网站数据知识点详解 #### 一、概述 在现代互联网开发中,爬虫技术成为了一项非常重要的技能。通过爬虫技术,开发者可以从网页中自动提取所需信息,进行数据分析、研究或是构建自己的应用服务。本篇文档...

    详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片

    `getHTML`方法负责获取指定URL的HTML内容: ```java private String getHTML(String url) throws Exception { URL uri = new URL(url); URLConnection connection = uri.openConnection(); InputStream in = ...

Global site tag (gtag.js) - Google Analytics