zoukankan      html  css  js  c++  java
  • 基于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(); } } }

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

  • 相关阅读:
    常用Java工具类
    Enum应用
    mybatis xml <if>判断字符串相等
    sqlserver插入图片数据
    [转载]Jquery Chosen 插件动态生成option或重新绑定
    工作问题整理-- sqlserver 新增参数限制,maven pom邮件发送
    【转载】redis.windows.conf 参数说明
    oracle11g更改字符集
    oracle基础知识小结
    [转载]SQL Server 数据库定时自动备份
  • 原文地址:https://www.cnblogs.com/jinxiaohang/p/6662442.html
Copyright © 2011-2022 走看看