易截截图软件、单文件、免安装、纯绿色、仅160KB

几种网页爬取的方法与实现(Java)

一、通过HttpClient(apache commons-httpclient)方式,获许网页内容,并解析出需要的东西。
      这种方法相对比较简单,因为commons-httpclient已经做了很好的封装,简单的代码如下:
// 构造HttpClient的实例
HttpClient httpClient = new HttpClient();
HttpClientParams clientParams = new HttpClientParams();
// 隐藏自己请求相关的信息
clientParams.setParameter("http.useragent",
"Mozilla/4.0 (compatible; FIREFOX 9.0; IBM AIX 5)");
clientParams.setHttpElementCharset("GBK");
HttpState httpState = new HttpState();
httpClient.setParams(clientParams);
httpClient.getParams().setParameter(
HttpClientParams.HTTP_CONTENT_CHARSET, "GBK");
httpClient.setState(httpState);
clientParams.setVersion(HttpVersion.HTTP_1_1);
if (useProxy) // 使用代理
{
httpClient.getHostConfiguration().setProxy(proxyIp, port);
}

     这里需要注意的是记得设置http.useragent属性,默认会显示为httpclient代理,很多网站为了防止被恶意爬取,最简单的方式就是判断useragent属性。
二、第一种方式最简单,但是也最容易被网站禁止掉,因为这种方式是不会执行javascript的,这样就很容易被网站通过javascript做标识识别出来,同时获取的数据如果是通过javascript计算来的,也会比较麻烦。
     那么,我们来看第二种方式,通过模拟真正的browser来获取网页内容,并执行javascript,目前大部分流行的浏览器内核都是开放的,比如webkit,下面我们以mozilla引擎为例,实现如下:
     首先,我们会用到xulrunner,这是使用mozilla引擎的xul浏览器,在这里我们用来替代mozilla实现。
     下载xulrunner后,解压缩到相应目录
     在代码中进行配置。
static {
Mozilla.getInstance().initialize(new File("D:\\xulrunner"));
System.setProperty("org.eclipse.swt.browser.XULRunnerPath",
"D:\\xulrunner");
}
      将代码中的xulrunner目录位置修改为你解压缩的位置。
      我们使用SWT来实现界面,SWT的Browser控件可以使用多个浏览器引擎,设置如下


相关文档:

java打印的源代码(示例)

package com.demo;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.util.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.swing.*;
/**
This program demonstrates how to print 2D graphics ......

JAVA中的反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行 ......

简单的java图像裁减

/**
* 对图片裁剪,并把裁剪完蛋新图片保存 。
*
* @param srcpath: 被裁减的图片完整路径
* @param tarpath: 已裁减的新图片保存完整的路径
* @param x: 裁减矩形区域左上顶点水平位移
* @param y: 裁减矩形区域左上顶点垂直位移
* @param width: 裁减矩形区域的宽度
* @param height: 裁减矩形 ......

第五章 初始化(think in java 笔记)

类的数据成员在未被初始化时会保证被赋予默认值
boolean false
char []
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
reference null
1.指定初始化。在定义类成员变量的地方为其赋值,可以通过调用某个方法来提供初始值
   但这样有个限制就是类的对象 ......

[转载]Java学习总结(Java源文件、JavaDoc文档)

一、Java源文件
1、一个Java应用包含一个或多个Java源文件,每个Java源文件只能包含下列内容(空格和注释除外)
l 零个或一个包声明语句
l 零个或多个包引入语句
l 零个或多个类声明语句
l 零个或多个接口声明
2、每个Java源文件可包含多个类或接口的定义,但是至多只有一个类或者接口是public的,而且Java源文件必须以 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号