求教关于网络爬虫问题

why_rookie 2014-04-13 07:40:21
我刚看《自己动手写网络爬虫》这本书, 照着书本敲了第一个程序, 可是编译通过了, 但是运行时说有异常, 小弟菜鸟, 实在看不懂,, 直接上代码了, HttpCient的jar包, 已经导入了。求大神看看


package TestURL;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.collections4.map.StaticBucketMap;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.PostMethod;
import org.omg.CORBA.PRIVATE_MEMBER;
import org.omg.CORBA.PUBLIC_MEMBER;
public class RetrivePage {
private static HttpClient httpClient = new HttpClient();
static {
httpClient.getHostConfiguration().setProxy("172.17.8.18.84", 8080);
}

public static boolean downLoadPage (String path) throws HttpException, IOException{
InputStream input = null;
OutputStream output = null;
//得到post方法
PostMethod postMethod = new PostMethod(path);
//设置post方法的参数

NameValuePair[] postData = new NameValuePair[2];
postData[0] = new NameValuePair("name", "lietu");
postData[1] = new NameValuePair("password", "*****");
postMethod.addParameters(postData);
//执行, 返回状态码
int statusCode= httpClient.executeMethod(postMethod);
//针对状态码进行处理, 先是只处理返回值为200的状态码
if(statusCode == HttpStatus.SC_OK) {
input = postMethod.getResponseBodyAsStream();
//得到文件名
String filename = path.substring(path.lastIndexOf('/') + 1);
//获得文件输出流
output = new FileOutputStream(filename);

//输出文件
int tempByte = -1;

while((tempByte = input.read()) > 0) {
output.write(tempByte);
}
//关闭输出流
if(input != null) {
input.close();
}
if (output != null){
output.close();
}
return true;
}
return false;
}
/*
* 测试代码
*/
public static void main(String[] args) throws IOException {
//抓取首页, 输出
try {
RetrivePage.downLoadPage("http://www.lietu.com/");
}catch(HttpException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}

下面是异常出现的地方
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more

谢谢啦
更多 0
...全文
218 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一罐秋刀鱼 2016-04-21
  • 打赏
  • 举报
回复
不知楼主的问题解决了吗,小弟现在也遇到了这种问题,求解决办法
zjz1_1 2014-10-28
  • 打赏
  • 举报
回复
另外你看看书上的ip有对应的网址吗?早就没有了
zjz1_1 2014-10-28
  • 打赏
  • 举报
回复
172.17.8.18.84 你的ip地址竟然有5位。。
why_rookie 2014-04-13
  • 打赏
  • 举报
回复
引用 2 楼 huxiweng 的回复:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 日志包导入了吗
还是不行 , 好郁闷。。。eclipse还提示该包未被使用
why_rookie 2014-04-13
  • 打赏
  • 举报
回复
@
引用 2 楼 huxiweng 的回复:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 日志包导入了吗
谢谢斑竹
why_rookie 2014-04-13
  • 打赏
  • 举报
回复
这个没有 我试试 谢谢啦
teemai 2014-04-13
  • 打赏
  • 举报
回复
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 日志包导入了吗
why_rookie 2014-04-13
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66) at TestURL.RetrivePage.<clinit>(RetrivePage.java:12) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 2 more

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧