路西法-zkj的gravatar头像
路西法-zkj 2015-03-16 12:13:34

java网络爬虫jsoup和commons-httpclient使用入门教程实例源码

第一种方式:需要导入jsoup.jar包

1、给定一个url获得相对应的text文本

   Document doc doc = Jsoup.connect("链接地址").get();

2、通过select条件过滤符合的元素

   Elements elements = doc.select("table[class=page_con]").select("tr");

3、通过for循环获得想要的值

   

for (int i = 0; i < elements.size()-1; i++) {

    //通过正则可以获取想要的内容

     elements.get(i).getElementsMatchingOwnText(pattern).text();

     //获得符合元素之间的文本

     elements1.get(i).text();

     //获得符合元素之间的超链接   

     elements1.get(i).getElementsByTag("a").attr("href");

   }

第二种方式:commons-httpclient-3.0.1.jar、htmllexer.jar    

//相当于打开游览器

         HttpClient httpClient = new HttpClient();

         GetMethod getMethod = new GetMethod("链接地址");

         //请求时长五秒

         getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);

         getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

         try {

                   getMethod.addRequestHeader("Content-Type", "text/html; charset=UTF-8");

                   // execute HTTP GET request

                   int statusCode = httpClient.executeMethod(getMethod);

                   //判断状态,不是200,作相关处理

                   if (statusCode != HttpStatus.SC_OK) {

                           

                   }

                   //字节数组

                   byte[] responseBody = getMethod.getResponseBody();

                   //转化为字符串及编码

                   String  content = new String(responseBody, "UTF-8");

                   //内容作相关操作获取想要的元素及值

                   可以使用正则表达式              

         } finally {

                   // 釋放

                  getMethod.releaseConnection();

         }

打赏

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友