博主信息
博文 5
粉丝 0
评论 0
访问量 6944
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Jsoup爬虫的简单应用
小不懂的博客
原创
2717人浏览过

package com.http.client;import java.io.IOException;import org.apache.http.HttpHost;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.conn.params.ConnRouteParams;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.CoreConnectionPNames;import org.apache.http.util.EntityUtils;import org.apache.log4j.Logger;/医院
*
* @author oo
* @date 2018-04-04 */public class MyHttpClient {    private static Logger logger = Logger.getLogger(MyHttpClient.class);    /医院
    * 需求:使用httpclient 爬取 网站数据
    *
    * @param args     */
   public static void main(String[] args) {        // 创建HttpClient 对象
       HttpClient hclient = new DefaultHttpClient();        // 设置响应时间 传输源码时间 代理服务器(设置代理服务器的目的是:防止爬数据被封ip)
       hclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000)
               .setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000)
               .setParameter(ConnRouteParams.DEFAULT_PROXY, new HttpHost("111.155.116.237", 8123));

       HttpGet hGet = new HttpGet("http://www.swordsign.com/");
       String content = "";        try {            // 向网站发送请求,获取网页源码
           HttpResponse execute = hclient.execute(hGet);            // EntityUtils工具类把网页实体转换成字符串
           content = EntityUtils.toString(execute.getEntity(), "utf-8");
       } catch (ClientProtocolException e) {
           e.printStackTrace();
           logger.error("医院医院医院医院ClientProtocolException" + e);
       } catch (IOException e) {
           e.printStackTrace();
           logger.error("医院医院医院医院IOException" + e);
       }

       System.out.println(content);
   }

}


 使用Jsoup进行请求:

package com.http.client;import java.io.IOException;import org.apache.log4j.Logger;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;public class MyJsoup {    private static Logger logger = Logger.getLogger(MyJsoup.class);    public static void main(String[] args) {        try {            // 使用jsoup 发送请求
           Document document = Jsoup.connect("http://www.swordsign.com/").get();//            System.out.println(document);
           Elements elements = document.getElementsByTag("a");
           String val = elements.text();
           System.out.println(val);            
           for (Element element : elements) {
               System.out.println(element.text()+":"+element.attr("href"));
           }
       } catch (IOException e) {
           e.printStackTrace();
           logger.error("医院医院医院医院医院*IOException: 连接失败" + e);
       }
   }

}

  HttpClient 结合Jsoup:

1 package com.http.client; 2  3 import java.io.IOException; 4  5 import org.apache.http.HttpResponse; 6 import org.apache.http.client.ClientProtocolException; 7 import org.apache.http.client.HttpClient; 8 import org.apache.http.client.methods.HttpGet; 9 import org.apache.http.impl.client.DefaultHttpClient;10 import org.apache.http.util.EntityUtils;11 import org.jsoup.Jsoup;12 import org.jsoup.nodes.Document;13 import org.jsoup.nodes.Element;14 import org.jsoup.select.Elements;15 16 public class HttpCLientAndJsoup {17 18     public static void main(String[] args) throws ClientProtocolException, IOException 

{19         // 创建HttpClient对象20         HttpClient hClient = new DefaultHttpClient();21         // 爬虫URL大部分都是get请求,创建get请求对象22         HttpGet hget = new HttpGet("http://www.swordsign.com/");23         // 向网站发送请求,获取网页源码24         HttpResponse response = hClient.execute(hget);25         // EntityUtils工具类把网页实体转换成字符串26  

       String content = EntityUtils.toString(response.getEntity(), "utf-8");27    

     // Jsoup负责解析网页28         Document doc = Jsoup.parse(content);29   

      // 使用元素选择器选择网页内容30         Elements elements = doc.select("div.salary_con li");31         // System.out.println(elements.text());32         for (Element element : elements) {33             String text = element.text();34             System.out.println(text);35         }36 37     }38 39 }

 


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学