java-<自己动手写网络爬虫>时遇到的报错

问题描述

<自己动手写网络爬虫>时遇到的报错

package com.guet.crawlerbyself;

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

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class RetrivePage
{

private static HttpClient httpClient = new HttpClient();
//set a proxy server

static
{
    //set IP Address and the port of the proxy server
    httpClient.getHostConfiguration().setProxy("localhost",8080);
}

public static boolean downloadPage(String path) throws HttpException, IOException
{
    InputStream input = null;
    OutputStream output = null;

    //get post method
    PostMethod postMethod = new PostMethod("www.baidu.com");

    //set parameters of post method
    NameValuePair[] postData = new NameValuePair[2];
    postData[0] = new NameValuePair("name","baidu");
    postData[1] = new NameValuePair("password","123");

    //Adds an array of parameters to be used in the POST request body.
    postMethod.addParameters(postData);

    //execute and return status code.
    int statusCode = httpClient.executeMethod(postMethod);

    //this place,only process the status 200.
    if(statusCode == HttpStatus.SC_OK)
    {
        input = postMethod.getResponseBodyAsStream();
        String filename = path.substring(path.lastIndexOf('/')+1);
        output = new FileOutputStream(filename);

        //output to the file
        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)
{
    System.out.println("execute");
    try{
        RetrivePage.downloadPage("http://www.baidu.com/");
    }catch(HttpException e){
        System.out.println("httpexeption");
        e.printStackTrace();
    }catch(IOException e){
        System.out.println("ioexeption");
        e.printStackTrace();
    }
}

}
运行时弹出对话框显示:could not find the main class. program will exit
console中显示:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.httpclient.HttpClient.(HttpClient.java:66)
at com.guet.crawlerbyself.RetrivePage.(RetrivePage.java:17)
Exception in thread "main"

所需的apache的开源包我已经导入了,代码写完后也没报错,运行的时候就报错了.
我在网上google了一下,有的说把jdk改成1.4的之类的答案,我试过了,还是老问题没什么效果.希望之前碰到这个问题的朋友帮忙解答一下.

解决方案

首先这个问题,我最近正好也遇到,你的代码我没有仔细看,不过从出错情况来看是缺少相应的包:commons-loggingxx.jar,之后如果还有错误,百度一下即可

解决方案二:

为什么安装了commons-loggingxx。jar之后,还有其他问题

时间: 2024-10-01 11:11:07

java-&amp;lt;自己动手写网络爬虫&amp;gt;时遇到的报错的相关文章

问题-刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下

问题描述 刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下 刚开始学习java ,自己写了一个聊天小程序,没有报任何错误.测试时打开3个聊天小窗口 A,B,C,在A中输入文字,只在B中显示出来了,而且显示出了三句相同语句.查了好几个小时都没有查出来,希望高手能帮帮忙,看看是怎么回事,并且告诉我是通过什么方法找出来的. 以下是客户端和服务器端代码 客户端: import java.awt.*; import java.awt.event.*; import java

java源码-写了一个java实现航空订票功能,写了一部分,但是一运行就报错,求大神指点

问题描述 写了一个java实现航空订票功能,写了一部分,但是一运行就报错,求大神指点 import java.util.Scanner;public class The_Plane_Tickets { static String[] names = null; //起点终点 static double[] price = null; //票价 static int []FlightNumber = null; //航班号 static String[] TimeOfFlight = null;/

java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神

问题描述 java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神 java中空字符串可以用indexOf么?如果用了是不是会报错?请教大神 解决方案 可以啊,只要是非null的字符串类型的变量都可以调用string类的这个方法的. 解决方案二: public class NullStringTest { public static void main(String[] args) { String s1 = null; //空指针异常 // System.out.println

spring 写junit测试时使用aop报错

问题描述 spring 写junit测试时使用aop报错 当我在我的配置文件中加上如下配置会包下面的错误,我不加时就不会出错这是为什么 <aop:config> <aop:pointcut id="interceptorPointCuts" expression="execution(* cn.qtt.service.*.*(..)) " /> <aop:pointcut id="interceptorPointCutsNew

hibernate-新手Hibernate写了个小程序,第一次运行报错如下,好像还有数据库连不上的问题,不知道该怎么改

问题描述 新手Hibernate写了个小程序,第一次运行报错如下,好像还有数据库连不上的问题,不知道该怎么改 九月 07, 2015 10:31:46 下午 org.hibernate.annotations.common.Version INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 九月 07, 2015 10:31:46 下午 org.hibernate.Version logVersion INFO: HHH0

框架-JAVA问题:删除数据库中数据的代码,测试不会报错,但实际什么都删不了

问题描述 JAVA问题:删除数据库中数据的代码,测试不会报错,但实际什么都删不了 这些操作做完后,数据库里的t_product表中,id=2的数据依然在,不是刷新的问题,刷新也还在 解决方案 为什么你的三个函数保存.修改.删除方法调用sql的时候都没有传递sql参数值呢? 解决方案二: 调用mapper里面的sql代码的时候,把要删除的id传进去了吗?不应该是sqlsession.delete("",参数);吗? 解决方案三: 参数没带.sqlsession.delect带上id 解决

为什么光盘里面的源代码运行正确,自己照着写什么问题都没有,也不报错运行不出来。

问题描述 为什么光盘里面的源代码运行正确,自己照着写什么问题都没有,也不报错运行不出来. 解决方案 解决方案二:代码放上来不然谁知道解决方案三:这个你正常应该问售后!!解决方案四:把你敲出来的代码贴上来.这样问,谁能知道什么原因,你敲错了,光盘提供的源代码有bug等等等等解决方案五:这个要具体情况具体分析啊

主键-坐等求救,java用ssh的时候,Gson解析json有外键的时候报错

问题描述 坐等求救,java用ssh的时候,Gson解析json有外键的时候报错 解析json是用的gson,实体类涉及到三张表三个类,之间的关系是: C表的一个字段是外键,为A表的主键 C表的另一个字段是外键,为B表的主键 转json的时候报如下异常,该怎么做,请具体一点. 这是多对多的关系吧? java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy

《用Python写网络爬虫》——导读

前 言 互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问.但是,这些数据难以复用.它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用.从网页中抽取数据的过程又被称为网络爬虫.随着越来越多的信息被发布到网络上,网络爬虫也变得越来越有用. 目 录 第1章 网络爬虫简介 1.1 网络爬虫何时有用1.2 网络爬虫是否合法1.3 背景调研 1.3.1 检查robots.txt 1.3.2 检查网站地图 1.3.3 估算网站大小 1.3.4 识别网站所用技术 1.3.5 寻找网站所有者1.