Jsoup爬取心灵毒鸡汤

不乱于心,不困于情。不畏将来,不念过往。如此,安好。

你的梦想是什么

之前一直在搞微博,定时转发抽奖微博,搞定后,meilexiawen。最近想想定时发点有意思的东西也不错,发啥呢?毒鸡汤,没错!
【一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。 ——三毛】

开始你的表演

  1. 首先找个毒鸡汤网站,并定位关键节点。汤的成色还不错。

    心灵鸡汤
  2. 按F12,对元素分析下。选中其中一个,右键Copy selector。

    #contentinside > div.totallikecontent > div > div > div.view-content > div.views-row.views-row-1.views-row-odd.views-row-first
    

    这样只能标识一个,好在jsoup.select支持正则。

    #contentinside > div.totallikecontent > div > div > div.view-content > div[class~=^views-row]
    
  3. 开始编写代码。目前没发现网站有什么限制。除了.....

    public void getTotallike() throws IOException {
       String url = "http://www.juzimi.com/totallike";
       String ua = "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36";
       Document parse = Jsoup.connect(url).userAgent(ua).execute().parse();
    
       Elements select = parse.select("#contentinside > div.totallikecontent > div > div > div.view-content > div[class~=^views-row]");
       for (Element element : select) {
           String author = element.select("div > div.xqjulistwafo").text();
           String content = element.select("div > div.views-field-phpcode-1 > a").text();
           System.out.println(content +"   "+author);
       }
    }
    
  4. 存储这些鸡汤,倒掉怪可惜的,我这里就统一放到redis里,因为只爬了15条。

        ArrayList<Object> poisons = new ArrayList<>();
        for (Element element : select) {
            String author = element.select("div > div.xqjulistwafo").text();
            String content  = element.select("div > div.views-field-phpcode-1 > a").text();
            System.out.println(content +"   "+author);
            poisons.add(content + "   " + author);
        }
        String value = JSONObject.toJSONString(poisons);
        stringRedisTemplate.opsForValue().set("Poison", value);
    
    先生,您的鸡汤

表演结束

每天定时,早晚各一次

番外

因为jsoup访问网站时,没指定User-Agent时会默认带下面这个User-Agent

Request() {
            super(null);
            this.method = Method.GET;
            this.addHeader("Accept-Encoding", "gzip");
            this.addHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36");
            this.parser = Parser.htmlParser();
        }

看着和普通PC端UA没什么区别,所以一般我都不带(用默认的)。奇怪的事就发生了。



基本内容和作者都是乱的,每次还不一样,不知道是不是UA的问题,我换了UA就没问题了,Mac电脑的朋友可以测测看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,959评论 0 23
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 上海进入黄梅天不是一天两天的事,这沥沥落落的雨,灰色的天空,让人的心好不痛快。但是,上礼拜,不管是上网,还是进入朋...
    ElleLee阅读 33,532评论 14 12
  • 维罗妮卡平庸的生活,没有激动,没有悲伤,什么都没有,就只有一天一天的重复。谈不上很幸福,也谈不上不幸福。她闭...
    家以纯阅读 366评论 2 3
  • 高雅别致的小皮裙包臀裙,带一丝小俏皮,遮肉显瘦的同事,勾勒出迷人曲线。拼接的设计增添了时尚感,时尚范十足,拥有独特...
    于贺贺阅读 725评论 0 0