- 浏览: 415337 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
liyuanhoa_:
...
struts2.0中struts.xml配置文件详解 -
chenmingde:
...
Velocity应用(一) -
weizhikai_ai:
第二十六,当一个线程进入一个对象的一个synchronized ...
Java常见面试题(含答案) -
Aurora_lr:
...
Spring宠物商店学习笔记(一) - -
zs911zs:
all copy from http://www.iteye ...
Mule入门文档
一、返回头信息的获取
步骤:
1、定义URL对象并初始化;
2、定义URLConnection对象,并通过URL对象的openConnection()方法获取该对象;
3、调用URLConnection对象的connect()方法实现和服务器的连接;
4、通过URLConnection对象获取请求头的域信息(getHeaderFields()、getHeaderField(key));
5、使用URLConnection对象的方法来获取信息。
示例:
String urlName = "http://www....com ";
try {
URL url = new URL(urlName);
URLConnection connection = url.openConnection();
connection.connect();
// print header fields
Map<String, List<String>> headers = connection.getHeaderFields();
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
String key = entry.getKey();
for (String value : entry.getValue()) {
System.out.println(key + ": " + value);
}
}
// print convenience functions
System.out.println("------------------------");
System.out.println("getContentType:" + connection.getContentType());
System.out.println("getContentLength:"
+ connection.getContentLength());
System.out.println("getContentEncoding:"
+ connection.getContentEncoding());
System.out.println("getDate:" + connection.getDate());
System.out.println("getExpiration:" + connection.getExpiration());
System.out.println("getLastModified:"
+ connection.getLastModified());
System.out.println("------------------------");
Scanner in = new Scanner(connection.getInputStream());
// print first ten lines of contents
for (int n = 1; in.hasNextLine() && n <= 10; n++) {
System.out.println(in.nextLine());
}
if (in.hasNextLine())
System.out.println("...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
二、带参数的请求
在默认情况下,建立的连接只有从服务器读取信息的输入流,并没有任何之行写操作的输出流。如果想获取输出流(例如,想一个Web服务器提交数据),那么需要调用:connection.setDoOutput(true);
示例:
String urlName = "……";
Map<String, String> paras = new HashMap<String, String>();
paras.put("flightway", "Single");
String result;
try {
result = doPost(urlName, paras);
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
public static String doPost(String rlString,
Map<String, String> nameValuePairs) throws IOException {
URL url = new URL(rlString);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
boolean first = true;
for (Map.Entry<String, String> pair : nameValuePairs.entrySet()) {
if (first)
first = false;
else
out.print('&');
String name = pair.getKey();
String value = pair.getValue();
out.print(name);
out.print('=');
out.print(URLEncoder.encode(value, "GB2312"));//UTF-8
}
out.close();
Scanner in;
StringBuffer response = new StringBuffer();
try {
in = new Scanner(connection.getInputStream());
} catch (IOException e) {
if (!(connection instanceof HttpURLConnection))
throw e;
InputStream err = ((HttpURLConnection) connection).getErrorStream();
if (err == null)
throw e;
in = new Scanner(err);
}
while (in.hasNextLine()) {
response.append(in.nextLine());
response.append("\n");
}
in.close();
return response.toString();
}
备注:
import java.io.*;import java.net.*;import java.util.*;
huc.setDoOutput(true);
// 设置为post方式
huc.setRequestMethod("POST");
huc.setRequestProperty("user-agent", "mozilla/4.7 [en] (win98; i)");
步骤:
1、定义URL对象并初始化;
2、定义URLConnection对象,并通过URL对象的openConnection()方法获取该对象;
3、调用URLConnection对象的connect()方法实现和服务器的连接;
4、通过URLConnection对象获取请求头的域信息(getHeaderFields()、getHeaderField(key));
5、使用URLConnection对象的方法来获取信息。
示例:
String urlName = "http://www....com ";
try {
URL url = new URL(urlName);
URLConnection connection = url.openConnection();
connection.connect();
// print header fields
Map<String, List<String>> headers = connection.getHeaderFields();
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
String key = entry.getKey();
for (String value : entry.getValue()) {
System.out.println(key + ": " + value);
}
}
// print convenience functions
System.out.println("------------------------");
System.out.println("getContentType:" + connection.getContentType());
System.out.println("getContentLength:"
+ connection.getContentLength());
System.out.println("getContentEncoding:"
+ connection.getContentEncoding());
System.out.println("getDate:" + connection.getDate());
System.out.println("getExpiration:" + connection.getExpiration());
System.out.println("getLastModified:"
+ connection.getLastModified());
System.out.println("------------------------");
Scanner in = new Scanner(connection.getInputStream());
// print first ten lines of contents
for (int n = 1; in.hasNextLine() && n <= 10; n++) {
System.out.println(in.nextLine());
}
if (in.hasNextLine())
System.out.println("...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
二、带参数的请求
在默认情况下,建立的连接只有从服务器读取信息的输入流,并没有任何之行写操作的输出流。如果想获取输出流(例如,想一个Web服务器提交数据),那么需要调用:connection.setDoOutput(true);
示例:
String urlName = "……";
Map<String, String> paras = new HashMap<String, String>();
paras.put("flightway", "Single");
String result;
try {
result = doPost(urlName, paras);
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
public static String doPost(String rlString,
Map<String, String> nameValuePairs) throws IOException {
URL url = new URL(rlString);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
boolean first = true;
for (Map.Entry<String, String> pair : nameValuePairs.entrySet()) {
if (first)
first = false;
else
out.print('&');
String name = pair.getKey();
String value = pair.getValue();
out.print(name);
out.print('=');
out.print(URLEncoder.encode(value, "GB2312"));//UTF-8
}
out.close();
Scanner in;
StringBuffer response = new StringBuffer();
try {
in = new Scanner(connection.getInputStream());
} catch (IOException e) {
if (!(connection instanceof HttpURLConnection))
throw e;
InputStream err = ((HttpURLConnection) connection).getErrorStream();
if (err == null)
throw e;
in = new Scanner(err);
}
while (in.hasNextLine()) {
response.append(in.nextLine());
response.append("\n");
}
in.close();
return response.toString();
}
备注:
import java.io.*;import java.net.*;import java.util.*;
huc.setDoOutput(true);
// 设置为post方式
huc.setRequestMethod("POST");
huc.setRequestProperty("user-agent", "mozilla/4.7 [en] (win98; i)");
发表评论
-
初识Firebug 全文 — firebug的使用
2009-02-09 14:53 1268http://www.ooso.net/index.php/a ... -
XmlHttp封装研究
2009-01-05 15:18 1561虽然ajax有很多很牛的框 ... -
web.xml详解
2008-12-31 18:03 6484部署描述符实际上是一 ... -
Windows下svn客户端TortoiseSVN的安装和操作
2008-12-23 17:15 2917介绍几家免费提供svn源代码管理的站点 国内: http:/ ... -
Ant入门
2008-12-19 12:07 2062一. 配置环境变量 1. 添加ANT_HOME—— ... -
xfire定义
2008-12-19 10:44 1402XFire是新一代的Java Web服 ... -
JSTL定义
2008-12-19 10:00 1041JSTL(JSP Standard Tag Lib ... -
UDDI定义
2008-12-19 09:47 1394UDDI Universal Descripti ... -
SOA定义
2008-12-19 09:47 1120向服务的体系结构(Serv ... -
SOAP定义
2008-12-19 09:43 1478soap n. (英文)肥皂 SOAP:简单对象访 ... -
XMLHttpRequest对象
2008-12-18 17:35 858<%@ page contentType="t ... -
掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
2008-12-17 11:53 870在 Web 请求中使用 XMLHttp ... -
掌握 Ajax 系列 一 Ajax 入门简介
2008-12-16 17:17 784Ajax 由 HTML、JavaScript™ ... -
响应重定向与请求转发
2008-12-16 12:16 2188摘要在javaEE Web组件开发中,页面之间的跳转无疑是必不 ... -
Struts分页的一个实现
2008-12-16 10:43 839在Web应用程序里,分页总让我们开发人员感到很头疼,倒不是因为 ... -
Tapestry 建立自己得 Validator
2008-12-11 17:07 889今天介绍一下如何建立自己得Validator 1. 建立Val ... -
正则表达式之道
2008-12-11 17:05 1170正则表达式之道 原 ... -
ognl的学习例子
2008-12-10 14:39 2129原贴见:http://blog.csdn.ne ... -
TextArea 组件
2008-12-09 20:55 1704A) Insert 组件 e.g. <in ... -
了解 Tapestry,第 1 部分
2008-12-09 15:16 1446在这篇由两部分构成的文章的前一部分中,作者兼 develope ...
相关推荐
网页抓取,也称为网络爬虫或网页蜘蛛,是一种自动化程序,它按照一定的规则遍历互联网上的页面,提取所需的数据。这个过程涉及HTTP协议的理解,因为大部分网页都是通过HTTP或HTTPS协议传输的。 Java中的HTTP客户端...
Java网页抓取是一种技术,主要用于从互联网上自动提取或获取数据。这个"java网页抓取demo"项目提供了实现这一功能的实例代码。项目中的jar包是实现网页抓取的关键依赖库,包括Apache Commons Logging和HTTP Client。...
Java网络爬虫是一种自动化程序,用于从互联网上抓取大量数据。它的工作原理是模拟浏览器发送HTTP请求到服务器,接收响应,并解析返回的HTML或XML文档以提取所需信息。在这个过程中,HttpClient是一个常用的Java库,...
Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...
2. **Java网络编程**:Java提供了丰富的API来处理网络通信,如`java.net.URL`、`java.net.HttpURLConnection`或Apache的HttpClient库。这些类和库可以帮助我们发送HTTP请求并接收响应。 3. **HTML解析**:抓取到...
最后,持续学习和跟踪最新的网络爬虫技术,如Selenium用于处理JavaScript渲染的页面,或者Scrapy这样的高级爬虫框架,能够帮助我们编写更高效、更智能的Java网络爬虫。 总之,Java网络爬虫是一个涵盖HTTP通信、HTML...
Java抓取网络资源并插入数据库(附详细代码) 如有不懂处可加qq412546724
【Java新闻抓取】是一种利用编程技术从网络上自动收集并处理特定信息的过程,这里主要关注的是使用Java语言来实现对腾讯IT业界滚动新闻的抓取。在IT领域,新闻抓取是数据挖掘的重要组成部分,它能帮助我们获取实时、...
在Java编程语言中,抓取网页内容是一项常见的任务,尤其对于数据分析、信息提取以及网络爬虫等应用场景。本文将深入探讨如何使用Java实现简单的网页内容抓取,适合初学者入门学习。 首先,我们需要理解网页抓取的...
2. **Java网络编程**:Java提供了丰富的API用于网络编程,如Socket和ServerSocket类,它们分别用于客户端和服务端的通信。此外,还有URL和URLConnection类用于访问网络资源。理解这些类的使用方法是进行网络通信的...
### Java抓取网站数据知识点详解 #### 一、概述 在现代互联网开发中,抓取网站数据是一项重要的技能。无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是十分必要的。本篇文章将详细介绍...
在IT领域,网络数据抓取是一项重要的技能,特别是在大数据分析、搜索引擎优化和市场研究中。本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据...
本文是一份关于使用Java语言进行网页数据抓取的教程,主要介绍了使用Apache HttpClient这个库来完成网络请求和数据获取的操作。Apache HttpClient是一个支持HTTP协议的客户端工具,被广泛应用于Java爬虫开发中,帮助...
Java爬虫技术是一种用于自动化网页数据抓取的编程方法,尤其在处理图片抓取时,它可以帮助我们批量下载网络上的图像资源。对于新手来说,掌握Java爬虫抓取图片的基本步骤和技巧是十分有益的。 首先,我们需要了解...
- ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工...
Java Web网站抓取其他网站内容是一项常见的技术需求,主要用于数据挖掘、信息聚合或者自动化测试等场景。本篇文章将深入探讨如何使用Java在Web环境中抓取其他网站的数据。 首先,我们需要了解的是网页抓取的基本...
Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理、重试策略、超时设置等,使得在Java中进行网络通信变得更加便捷。HttpClient库不仅支持基本的HTTP协议,还支持HTTPS以及一些...
简单Java爬虫,抓取网页内容,让你了解爬虫机制,熟悉网络编程
根据提供的文件信息,文档标题为“java爬虫抓取网页数据教程”,此文件属于IT技术类教程,特别关注于Java编程语言在编写网络爬虫方面的应用。在这份教程中,将会涉及到使用HttpClient工具在Java环境中抓取网页数据的...
### Java抓取任何指定网页的数据 #### 知识点概览 本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据...