一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

服務器之家 - 編程語言 - JAVA教程 - java實現簡單的爬蟲之今日頭條

java實現簡單的爬蟲之今日頭條

2020-07-01 11:22maylor_zhu JAVA教程

最近在學習搜索方面的東西,需要了解網絡爬蟲方面的知識,雖然有很多開源的強大的爬蟲,但本著學習的態度,想到之前在做資訊站的時候需要用到爬蟲來獲取一些文章,今天剛好有空就研究了一下.在網上看到了一個demo,使用的是

前言

需要提前說下的是,由于今日頭條的文章的特殊性,所以無法直接獲取文章的地址,需要獲取文章的id然后在拼接成url再訪問。下面話不多說了,直接上代碼。

示例代碼如下

  1. public class Demo2 { 
  2.  
  3.  public static void main(String[] args) { 
  4.  
  5.   // 需要爬的網頁的文章列表 
  6.   String url = "http://www.toutiao.com/news_finance/"
  7.   //文章詳情頁的前綴(由于今日頭條的文章都是在group這個目錄下,所以定義了前綴,而且通過請求獲取到的html頁面) 
  8.   String url2="http://www.toutiao.com/group/"
  9.   //鏈接到該網站 
  10.   Connection connection = Jsoup.connect(url); 
  11.   Document content = null
  12.   try { 
  13.     //獲取內容 
  14.     content = connection.get(); 
  15.   } catch (IOException e) { 
  16.     e.printStackTrace(); 
  17.   } 
  18.   //轉換成字符串 
  19.   String htmlStr = content.html(); 
  20.   //因為今日頭條的文章展示比較奇葩,都是通過js定義成變量,所以無法使用獲取dom元素的方式獲取值 
  21.   String jsonStr = StringUtils.substringBetween(htmlStr,"var _data = "";"); 
  22.   System.out.println(jsonStr); 
  23.   Map parse = (Map) JSONObject.parse(jsonStr); 
  24.   JSONArray parseArray = (JSONArray) parse.get("real_time_news"); 
  25.   Map map=null
  26.   List<Map> maps=new ArrayList<>(); 
  27.   //遍歷這個jsonArray,獲取到每一個json對象,然后將其轉換成Map對象(在這里其實只需要一個group_id,那么沒必要使用map) 
  28.   for(int i=0;i<parseArray.size();i++){ 
  29.     map = (Map)parseArray.get(i); 
  30.     maps.add((Map)parseArray.get(i)); 
  31.     System.out.println(map.get("group_id")); 
  32.  
  33.   } 
  34.   //遍歷之前獲取到的map集合,然后分別訪問這些文章詳情頁 
  35.   for (Map map2 : maps) { 
  36.     connection = Jsoup.connect(url2+map2.get("group_id")); 
  37.     try { 
  38.       Document document = connection.get(); 
  39.       //獲取文章標題 
  40.       Elements title = document.select("[class=article-title]"); 
  41.       System.out.println(title.html()); 
  42.       //獲取文章來源和文章發布時間 
  43.       Elements articleInfo = document.select("[class=articleInfo]"); 
  44.       Elements src = articleInfo.select("[class=src]"); 
  45.       System.out.println(src.html()); 
  46.       Elements time = articleInfo.select("[class=time]"); 
  47.       System.out.println(time.html()); 
  48.       //獲取文章內容 
  49.       Elements contentEle = document.select("[class=article-content]"); 
  50.       System.out.println(contentEle.html()); 
  51.     } catch (IOException e) { 
  52.       e.printStackTrace(); 
  53.     } 
  54.   } 
  55.  } 


總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: babes性欧美30| 四虎影视884aa·com| 777奇米影视一区二区三区 | 插鸡小说| 日韩欧美三级视频 | 青草久久伊人 | 114级毛片免费观看 1024亚洲天堂 | 呜呜别塞了啊抽插 | 视频在线观看一区二区三区 | 天天色视频 | 亚洲狼人香蕉香蕉在线28 | 奇米网狠狠网 | 456亚洲老头视频 | 韩剧在线观看 | 国产黄频在线观看 | 夫妇野外交换激情 | 亚洲福利一区二区精品秒拍 | 91手机在线 | 欧美特黄aaaaaa | 大陆男男gayxxxxvideo | 亚洲高清无码在线 视频 | 99久久免费看国产精品 | 日韩欧美国产免费看清风阁 | 国产精品人人视频 | 欧美日韩在线观看一区二区 | 青青草原国产 | 欧美日韩亚洲成人 | 免费看的毛片 | 国内交换一区二区三区 | 91视频免费网站 | 亚洲风情无码免费视频 | 好男人资源免费观看 | 日本妇人成熟免费不卡片 | ass巨大胖女人sias | 日本一区视频在线 | 99r视频 | ffyybb免费福利视频 | 免费观看一级特黄三大片视频 | 白丝美女用胸伺候主人 | 日韩欧美一区黑人vs日本人 | 91精品婷婷国产综合久久8 |