这是老师所布置的作业
说一下我这里的爬去并非能把百度词条上的内容一字不漏的取下来(而是它分享链接的一个主要内容概括...)(他的主要内容我爬不到 也不想去研究大家有好办法可以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 }
结果