方法一:URLConnection
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class HttpRequest { /** * 向指定URL发送GET方法的请求 * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return * 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } }
方法二:
public static String getHtml(String urlString) { try { StringBuffer html = new StringBuffer(); URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStreamReader isr = new InputStreamReader(conn.getInputStream()); BufferedReader br = new BufferedReader(isr); String temp; while ((temp = br.readLine()) != null) { html.append(temp).append("\n"); } br.close(); isr.close(); return html.toString(); } catch (Exception e) { e.printStackTrace(); return null; } }
相关推荐
在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...
4. **处理JavaScript**:很多现代网站使用JavaScript动态加载内容,单纯抓取HTML可能无法获取完整数据。这时需要利用如Selenium WebDriver这样的工具模拟浏览器执行JavaScript,获取动态渲染后的页面内容。 5. **...
在Java编程环境中,将URL内容转换为PDF文件是一项常见的需求,尤其在数据抓取、文档保存或自动化报告生成等场景中。"java URL转PDF文件(完美支持中文)"的主题着重于如何利用Java库来实现这一功能,并且确保中文字符...
本文将介绍使用 Java 语言抓取网页内容的三种方式:使用 URL 连接、使用 HttpURLConnection 和使用 Apache HttpClient。 第一种方式:使用 URL 连接 使用 URL 连接是最简单的抓取网页内容的方式。它使用 java.net....
在Java编程语言中,抓取网页内容是一项常见的任务,尤其对于数据分析、信息提取以及网络爬虫等应用场景。本文将深入探讨如何使用Java实现简单的网页内容抓取,适合初学者入门学习。 首先,我们需要理解网页抓取的...
在这个Java实现网页抓取的项目中,我们将探讨如何利用Java编程语言来抓取网页内容。下面将详细介绍这个过程涉及的关键知识点。 1. **网络基础知识**:首先,理解HTTP协议是必要的,它是互联网上应用最广泛的一种...
【基于JAVA技术的网页内容智能抓取】是一个利用Java编程语言实现的网页内容抓取系统,它结合了XML解析、HTML解析以及多种开源组件来高效地获取和处理网络上的信息。核心技术和组件包括: 1. **XML解析**:DOM4J被...
本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...
这个程序的主要目的是从指定的URL抓取网页内容,并将其保存为一个HTML文件,即静态页面。下面将详细讲解这个过程涉及的关键知识点。 1. **网络请求**: 在Java中,我们可以使用`java.net`包中的`URL`类来表示一个...
在这个Java网页抓取示例中,HTTP Client库用于发起HTTP请求,获取网页内容。httpclient-4.1.2.jar和httpcore-4.2.1.jar分别是HTTP Client的核心库和基础核心组件,它们负责网络通信的部分。 在主类文件中,通常会...
在Java编程语言中,实现一个能抓取网站URL并提供分析功能的系统涉及到多个关键知识点。这个系统通常被称为网络爬虫或网页抓取工具,它能够自动遍历互联网上的页面,提取所需信息,并进行一定程度的分析。以下是一些...
本文档主要探讨了基于JAVA技术实现网页内容智能抓取的方法、架构以及核心技术和业务流程。 一、架构 该系统完全基于JAVA开发,体现了JAVA作为一种强大的后端开发语言的优势。其架构主要包括以下几个部分: 1. XML...
在Java编程中,获取一个网页的HTML源文件是常见的任务,尤其在进行网络爬虫或者数据分析时。这个过程涉及到URL类、HTTP协议以及输入/输出流的使用。下面将详细解释如何实现这一功能。 首先,Java中的`java.net.URL`...
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 抓取与采集页面内容是一项常见的任务,特别是在大数据分析、搜索引擎优化(SEO)和网络监控等领域。这个压缩包中的两个文件,`HttpCon.java` 和 `ChunkedInputStream.java`,可能包含了实现这一功能的基本组件...
接着,解析网页内容是抓取URL和Email的关键步骤。HTML是网页的主要结构语言,因此,我们需要对HTML文档进行解析。Java的`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`接口可以用来创建和操作...
在这个例子中,我们创建了一个`Parser`对象,传入要抓取的网页URL。然后通过`elements()`方法获取一个迭代器,遍历HTML中的所有节点。当找到`<title>`标签时,我们提取并打印出网页的标题。 HTMLParser库还支持更...
重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据的重要性 在大数据时代背景下,从互联网上抓取数据变得尤为重要。这不仅能够帮助企业更好地了解市场动态,还能...
在IT领域,HTML网页内容抓取是一项常见的任务,特别是在数据挖掘、网络分析和自动化测试中。这个主题涉及到网络爬虫(Web Crawler)的概念,它允许我们自动化地从互联网上获取大量的HTML信息。以下是对“html网页...
在“java抓取网页数据”这个主题中,我们将深入探讨如何利用Java来抓取并处理互联网上的信息。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,...