• java 如何爬取百度百科词条内容(java如何使用webmagic爬取百度词条)


    这是老师所布置的作业

    说一下我这里的爬去并非能把百度词条上的内容一字不漏的取下来(而是它分享链接的一个主要内容概括...)(他的主要内容我爬不到 也不想去研究大家有好办法可以call me)

    例如 互联网+这个词汇 我这里爬的解释为 

    中文【互联网+_百度百科】“互联网+”是创新2.0下的互联网发展的新业态,是知识社会创新2.0推动下的互联网形态演进及其催生的经济社会发展新形态。“互联网+”是互联网思维的进一步实践成果,推动经济形态不断地发生演变,从而带动社会经济实体的生命力,为改革、创新、发展提供广阔的网络平台。通俗的说,“互联网+”就是“互联网+各个传统行业”,但这并不是简单的两者相加,而是利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态。它代表一种新的社会形态,即充分发挥互联网在社会资源配置中的优化和集成作用,将互联网的创新成果深度融合于经济、社会各域之中,提升全社会的创新力和生产力,形成更广泛的以互联网为基础设施和实现工具的经济发展新形态。2015年7月4日,国务院印发《国务院关于积极推进“互联网+”行动的指导意见》。2016年5月31日,教育部、国家语委在京发布《中国语言生活状况报告(2016)》。“互联.....(分享自

    而不同于百度词条的长篇大论

    webmagic 使用不再赘述 导入包实现PageProcessor接口

    代码如下

     1 package com.test;
     2 import java.util.regex.Matcher;
     3 import java.util.regex.Pattern;
     4 import us.codecraft.webmagic.Page;
     5 import us.codecraft.webmagic.Site;
     6 import us.codecraft.webmagic.Spider;
     7 import us.codecraft.webmagic.pipeline.ConsolePipeline;
     8 import us.codecraft.webmagic.processor.PageProcessor;
     9 /**
    10  * @author 信1605-1 hjj
    11  *
    12  */
    13 public class PaChong2 implements PageProcessor{
    14 
    15     private Site site = Site.me()
    16             .setUserAgent("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0")
    17             .setRetryTimes(3)
    18             .setSleepTime(1000);
    19     @Override
    20     public Site getSite() {
    21         // TODO Auto-generated method stub
    22         return site;
    23     }
    24     
    25     public static void main(String[] args) {
    26         Spider.create(new PaChong2())
    27         .addUrl("https://baike.baidu.com/item/互联网+")//这里填写你第一次要爬的网址(后面直接跟你要查的词汇名称把互联网改了就行)
    28         .addPipeline(new ConsolePipeline())
    29         .thread(15)
    30         .run();
    31         
    32 }
    33 
    34     @Override
    35     public void process(Page page) {
    36     //这段代码重复获取 
    37         System.out.println(mySplitBaiDu(page));
    38         System.out.println("中文"+unicodeToString(mySplitBaiDu(page)));
    39     }
    40     
    41     //爬取百度解释  为unicode文本
    42         public static String mySplitBaiDu(Page page)
    43         {
    44            String wordname=page.getUrl().toString().split("item/")[1];
    45             String basehtml=page.getJson().toString();
    46             String content =basehtml.split("bdText: "")[1].split("@")[0];
    47             return content;
    48         }
    49     
    50         //unicode 转中文
    51         public static String unicodeToString(String str) {
    52              
    53             Pattern pattern = Pattern.compile("(\\u(\p{XDigit}{4}))");
    54             Matcher matcher = pattern.matcher(str);
    55             char ch;
    56             while (matcher.find()) {
    57                 //group 6728
    58                 String group = matcher.group(2);
    59                 //ch:'木' 26408
    60                 ch = (char) Integer.parseInt(group, 16);
    61                 //group1 u6728
    62                 String group1 = matcher.group(1);
    63                 str = str.replace(group1, ch + "");
    64             }
    65             return str;
    66         }
    67     
    68 }

    结果

  • 相关阅读:
    设置VS2017背景图片
    NuGet的简单使用
    C#6.0,C#7.0新特性
    openFileDialog的Filter属性设置
    C# 获取当前路径7种方法
    正则表达式总结
    IDEA设置switch/case代码块自动补齐
    CentOS7使用yum安装RabbitMQ
    vue react 路由history模式刷新404问题解决方案
    @Component, @Repository, @Service的区别
  • 原文地址:https://www.cnblogs.com/xuexidememeda/p/10633177.html
Copyright © 2020-2023  润新知