這是老師所佈置的做業html
說一下我這裏的爬去並不是能把百度詞條上的內容一字不漏的取下來(而是它分享連接的一個主要內容歸納...)(他的主要內容我爬不到 也不想去研究你們有好辦法能夠call me)java
例如 互聯網+這個詞彙 我這裏爬的解釋爲 git
中文【互聯網+_百度百科】「互聯網+」是創新2.0下的互聯網發展的新業態,是知識社會創新2.0推進下的互聯網形態演進及其催生的經濟社會發展新形態。「互聯網+」是互聯網思惟的進一步實踐成果,推進經濟形態不斷地發生演變,從而帶動社會經濟實體的生命力,爲改革、創新、發展提供廣闊的網絡平臺。通俗的說,「互聯網+」就是「互聯網+各個傳統行業」,但這並非簡單的二者相加,而是利用信息通訊技術以及互聯網平臺,讓互聯網與傳統行業進行深度融合,創造新的發展生態。它表明一種新的社會形態,即充分發揮互聯網在社會資源配置中的優化和集成做用,將互聯網的創新成果深度融合於經濟、社會各域之中,提高全社會的創新力和生產力,造成更普遍的以互聯網爲基礎設施和實現工具的經濟發展新形態。2015年7月4日,國務院印發《國務院關於積極推動「互聯網+」行動的指導意見》。2016年5月31日,教育部、國家語委在京發佈《中國語言生活情況報告(2016)》。「互聯.....(分享自web
而不一樣於百度詞條的長篇大論網絡
webmagic 使用再也不贅述 導入包實現PageProcessor接口ide
代碼以下工具
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 }
結果優化