日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java新闻爬虫_java实现简单的爬虫之今日头条

發布時間:2024/9/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java新闻爬虫_java实现简单的爬虫之今日头条 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

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

示例代碼如下

public class Demo2 {

public static void main(String[] args) {

// 需要爬的網頁的文章列表

String url = "http://www.toutiao.com/news_finance/";

//文章詳情頁的前綴(由于今日頭條的文章都是在group這個目錄下,所以定義了前綴,而且通過請求獲取到的html頁面)

String url2="http://www.toutiao.com/group/";

//鏈接到該網站

Connection connection = Jsoup.connect(url);

Document content = null;

try {

//獲取內容

content = connection.get();

} catch (IOException e) {

e.printStackTrace();

}

//轉換成字符串

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 maps=new ArrayList<>();

//遍歷這個jsonArray,獲取到每一個json對象,然后將其轉換成Map對象(在這里其實只需要一個group_id,那么沒必要使用map)

for(int i=0;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();

//獲取文章標題

Elements title = document.select("[class=article-title]");

System.out.println(title.html());

//獲取文章來源和文章發布時間

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());

//獲取文章內容

Elements contentEle = document.select("[class=article-content]");

System.out.println(contentEle.html());

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

總結

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

總結

以上是生活随笔為你收集整理的java新闻爬虫_java实现简单的爬虫之今日头条的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。