国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現(xiàn)簡單的爬蟲之今日頭條

2019-11-26 13:36:36
字體:
供稿:網(wǎng)友

前言

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

示例代碼如下

public class Demo2 { public static void main(String[] args) {  // 需要爬的網(wǎng)頁的文章列表  String url = "http://www.toutiao.com/news_finance/";  //文章詳情頁的前綴(由于今日頭條的文章都是在group這個目錄下,所以定義了前綴,而且通過請求獲取到的html頁面)  String url2="http://www.toutiao.com/group/";  //鏈接到該網(wǎng)站  Connection connection = Jsoup.connect(url);  Document content = null;  try {    //獲取內(nèi)容    content = connection.get();  } catch (IOException e) {    e.printStackTrace();  }  //轉(zhuǎn)換成字符串  String htmlStr = content.html();  //因為今日頭條的文章展示比較奇葩,都是通過js定義成變量,所以無法使用獲取dom元素的方式獲取值  String jsonStr = StringUtils.substringBetween(htmlStr,"var _data = ", ";");  System.out.println(jsonStr);  Map parse = (Map) JSONObject.parse(jsonStr);  JSONArray parseArray = (JSONArray) parse.get("real_time_news");  Map map=null;  List<Map> maps=new ArrayList<>();  //遍歷這個jsonArray,獲取到每一個json對象,然后將其轉(zhuǎn)換成Map對象(在這里其實只需要一個group_id,那么沒必要使用map)  for(int i=0;i<parseArray.size();i++){    map = (Map)parseArray.get(i);    maps.add((Map)parseArray.get(i));    System.out.println(map.get("group_id"));  }  //遍歷之前獲取到的map集合,然后分別訪問這些文章詳情頁  for (Map map2 : maps) {    connection = Jsoup.connect(url2+map2.get("group_id"));    try {      Document document = connection.get();      //獲取文章標(biāo)題      Elements title = document.select("[class=article-title]");      System.out.println(title.html());      //獲取文章來源和文章發(fā)布時間      Elements articleInfo = document.select("[class=articleInfo]");      Elements src = articleInfo.select("[class=src]");      System.out.println(src.html());      Elements time = articleInfo.select("[class=time]");      System.out.println(time.html());      //獲取文章內(nèi)容      Elements contentEle = document.select("[class=article-content]");      System.out.println(contentEle.html());    } catch (IOException e) {      e.printStackTrace();    }  } }}

總結(jié)

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 临海市| 玛多县| 台东县| 靖远县| 霞浦县| 鄂托克旗| 海丰县| 神木县| 龙江县| 封丘县| 平昌县| 通榆县| 金山区| 新田县| 华蓥市| 南丹县| 进贤县| 天祝| 子洲县| 南昌市| 南投市| 英德市| 辽中县| 靖远县| 安泽县| 肇庆市| 太保市| 阿巴嘎旗| 巨野县| 广南县| 江华| 张家口市| 宾川县| 陇西县| 大竹县| 交口县| 鄢陵县| 东乡族自治县| 城口县| 泾川县| 察雅县|