zoukankan      html  css  js  c++  java
  • 我用java爬虫爬了一个图片网站

    我用java爬虫爬了一个图片网站

    最近想建立个网站,不想搞技术博客之类的网站了,因为像博客园还有CSDN这种足够了。平时的问题也都是这些记录一下就够了。那搞个什么网站好玩呢?

    看到一个图片网站还不错,里面好多图片(当然有xxx图片了....)哈哈,其实就是闲的,同时也介绍一下java爬虫的相关用法把。

    1、首先呢,爬虫应该就是两种了,一种是动态的接口请求返回的数据,这种json解析或者其他解析一下获取自己需要的数据就可以了。

    2、还有就是静态html的网页之类的。这种就需要解析html dom节点的数据。其实通俗点就是类似于 jquery 选择器,html数据解析成dom节点的数据,java里面有现成的类库

    看下我根据爬取的图片生成的网站效果把(代码近期准备开源,随便搞搞)

    原网站:https://www.yeitu.com/meinv/ 

    生成的网站:http://91bt.online/

    说明一下,这个博客网站,是修改的 https://github.com/WinterChenS/my-site

      

    需要的maven依赖,版本号自己去maven搜把

        <!--网页爬取-->
            <!--  http   -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
             
            </dependency>
    
            <dependency>
                <groupId>org.jsoup</groupId>
                <artifactId>jsoup</artifactId>
    
            </dependency>

    接着介绍一下用法,

    ① 比如:爬取一个图片静态页面: https://www.yeitu.com/meinv/xinggan/20180919_14722.html

      我们正常用jquery获取这个静态页面的标题(需要自己看dom节点的结构,用选择器获取)

     ② 接着,我们怎么用代码爬取这个呢?

    用httpclient工具类,写一个get请求方法,最终返回一个string的html网页内容

           
           String url="https://www.yeitu.com/meinv/xinggan/20180919_14722.html";
           HttpGet get = new HttpGet(url);// 设置参数 Builder customReqConf = RequestConfig.custom(); customReqConf.setConnectTimeout(connTimeout); customReqConf.setSocketTimeout(socketTimeout); customReqConf.setConnectionRequestTimeout(requestTimeout); get.setConfig(customReqConf.build()); get.addHeader("Connection", "Close"); HttpResponse res; // 执行 Http 请求. if (url.startsWith("https")) { // 执行 Https 请求. client = createSSLInsecureClient(); res = client.execute(get); } else { // 执行 Http 请求. client = HttpClientUtil.client; res = client.execute(get); } return EntityUtils.toString(res.getEntity(), charset);

    ③、接着把 html内容转换一下

     Document documentInner = Jsoup.parse(htmlInner);

    //这个就是图片中的jquery的选择器
    //$(".img_box").children("a").children("img").attr("alt");
    //下面就是对应jsoup框架写法
    String firstAlt = documentInner.select(".img_box").select("a").select("img").attr("alt");

    总结一下,就是把jquery对应选择器的写法,写成jsoup框架的写法转换一下下。其实也没转换什么东西,自己操作一下就比较清晰了

  • 相关阅读:
    json和xml数据的解析
    block(闭包)
    自定义控件注意点
    字符串使用
    如何用运行时,给系统分类添加属性?
    论代码规范
    常用设计模式
    多控制器管理
    GDI+学习及代码总结之-----画笔 .
    MFC程序添加Web浏览器控件(IE控件)
  • 原文地址:https://www.cnblogs.com/liran123/p/12585061.html
Copyright © 2011-2022 走看看