重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以使用HttpClient读取网页的内容
创新互联公司是专业的永平网站建设公司,永平接单;提供成都网站设计、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行永平网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
整个过程分为六步
创建 HttpClient 的实例
2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址
3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理
实现如下:
import java.io.IOException;
import org.apache点抗 mons.httpclient.*;
import org.apache点抗 mons.httpclient.methods.GetMethod;
import org.apache点抗 mons.httpclient.params.HttpMethodParams;
public class HttpClientTest...{
public static void main(String[] args) {
//构造HttpClient的实例
HttpClient httpClient = new HttpClient();
//创建GET方法的实例
GetMethod getMethod = new GetMethod("");
//使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//读取内容
byte[] responseBody = getMethod.getResponseBoy();
//处理内容
System.out.println(new String(responseBody));
} catch (HttpException e) {
//发生异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//发生网络异常
e.printStackTrace();
} finally {
//释放连接
getMethod.releaseConnection();
}
}
}
这样得到的是页面的源代码,再进行处理
下载一个jsoup包,并导入到项目里面。然后就可以很简便地编写爬虫了。
jsoup教程:
及jsoup中文版标准使用手册:、
网上还有大量jsoup教程,使用中可能涉及到 正则表达式,这里推荐一个讲解正则表达式基本操作的:
除此之外,还要考虑数据保存。你需要建立一个数据库,比如MySQL,然后将数据导入到数据库里面。这个过程可能比较困难。推荐网址:,上面有4个相关链接很有用。(其实上面讲解了抓取的全过程,含较完整的源代码。作者似乎没有使用jsoup,使用jsoup可以节省很多代码,比如截取某个标签后面的内容,使用jsoup包后一行代码就可以搞定)
最后将数据导出到word或execl里,可以使用工具Navicat ,网上很多绿色版,不用安装。
1.编写useSourceViewer 类的基本框架,该类仅包括无返回值的main ()方法,该方法从参数中获取URL,通过输入缓冲和输出缓冲将该URL 原码输出。
2.编写useSourceViewer 类,代码如下:
import java点虐 .*;
import java.io.*;
public class useSourceViewer
{
public static void main (String[] args)
{
if (args.length 0)
{
try
{
//读入URL
URL u = new URL(args[0]);
InputStream in = u.openStream( );
// 为增加性能存储输入流
in = new BufferedInputStream(in);
// 将输入流连接到阅读器
Reader r = new InputStreamReader(in);
int c;
while ((c = r.read( )) != -1)
{
System.out.print((char) c);
}
Object o = u.getContent( );
System.out.println("I got a " + o.getClass().getName( ));
}
catch (MalformedURLException e)
{
System.err.println(args[0] + " is not a parseable URL");
}
catch (IOException e)
{
System.err.println(e);
}
} // end if
} // end main
} // end SourceViewer}