• 基于HttpClient、Jsoup的爬虫获取指定网页内容


      不断尝试,发现越来越多有趣的东西,刚刚接触Jsoup感觉比正则表达式用起来方便,但也有局限只适用HTML的解析。

    不能尝试运用到四则运算中(工作室刚开始联系的小程序)。

      在原来写的HttpClient获取网页内容的基础上,增加对网页的解析。

     下面是实现对网页中电影分类的链接信息的爬取。

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;

    public class Main { public static void main(String[] args) throws IOException{ try { //创建client实例 HttpClient client= HttpClients.createDefault(); //创建httpget实例 HttpGet httpGet=new HttpGet("http://www.btba.com.cn"); //执行 get请求 HttpResponse response=client.execute(httpGet); //返回获取实体 HttpEntity entity=response.getEntity(); //获取网页内容,指定编码 String web= EntityUtils.toString(entity,"UTF-8"); //输出网页 System.out.println(web); Document doc= Jsoup.parse(web); Elements links=doc.select("a[href~=http://www.btba.com.cn/type/*]");//选择器,选取特征信息 String webs=null; for (Element link:links) { webs=link.attr("abs:href").toString(); System.out.println(webs+" "+link.text());//输出特征信息 } } catch (IOException e) { e.printStackTrace(); } } }

    下一步,将完成电影链接及电影相关信息的爬取。

  • 相关阅读:
    《人月神话》读后感-何保委
    软件工程2017第二次作业随笔-何保委
    软件工程2017第一次作业随笔
    实验吧 REVERSE
    浙大ctf REVERSE
    eclipse安装
    表单
    【南京邮电】maze 迷宫解法
    看雪.TSRC 2017CTF秋季赛第三题
    使用Z3破解简单的XOR加密
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/6662442.html
Copyright © 2020-2023  润新知