前言

需要提前说下的是,由于今日头条的文章的特殊性,所以无法直接获取文章的地址,需要获取文章的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实现简单的爬虫之今日头条相关推荐

  1. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片

    [Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...

  2. [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图

    [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图 学习笔记--爬取今日头条街拍美图 准备工作 抓取分析 实战演练 学习笔记–爬取今日头条街拍美图 尝试通过分析Ajax请求来抓取 ...

  3. Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻

    0x0 背景 最近学习爬虫,分析了几种主流的爬虫框架,决定使用最原始的两大框架进行练手: Jsoup&HttpUnit 其中jsoup可以获取静态页面,并解析页面标签,最主要的是,可以采用类似 ...

  4. 今日头条 爬虫 java_Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻...

    0x0 背景 最近学习爬虫,分析了几种主流的爬虫框架,决定使用最原始的两大框架进行练手: Jsoup&HttpUnit 其中jsoup可以获取静态页面,并解析页面标签,最主要的是,可以采用类似 ...

  5. java gui 日历_Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...

  6. java 日历界面_Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个calendarbean类,用于基本的日期计算: package other1; import jav ...

  7. java银行取款_Java写简单的银行取钱系统

    按ctrl+a 选中所有的代码删除,再复制下面的代码输入即可 import java.util.Scanner; public class 简单的银行取钱系统 //class的名字可以自己新建和这个一 ...

  8. java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  9. java 爬虫_Java原生代码实现爬虫(爬取小说)

    Java也能做爬虫. 现在提到爬虫人第一个想到的就是python,其实使用Java编写爬虫也是很好的选择,Java成熟的爬虫框架很多,下面给大家展示一个使用Java基础语言编写的爬取小说的案例: 实现 ...

最新文章

  1. php图片特效,php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
  2. 麻省理工牛人解说数学体系
  3. 深入理解 Java内存模型
  4. BAP 使用DYNP_VALUES_READ来获取屏幕字段值
  5. 微信小程序 长按图片不出现菜单_微信小程序实现长按删除图片的示例
  6. 扩展枚举功能的两种方法
  7. Android Fragment功能的例子
  8. gitblit无法启动服务
  9. 行业观察:2021年LTE将成M2M市场主导技术
  10. element ui 框架的优势_Element UI 框架
  11. 使用夜神模拟器完美破解(反编译)微信小程序以及问题汇总
  12. 一周AI要闻回顾 | FB新研究颠覆CNN,加州新政允许无人卡车路测
  13. Centos7值得收藏的网站
  14. vue 项目实践 -ele 表单验证
  15. MindSpore实现手写数字识别
  16. 大津二值化算法(Otsu)
  17. 正则表达式 re.compile() 相关
  18. 单片机学习笔记——微机基础知识
  19. linux ls 目录颜色,改变ls 中目录颜色的方法
  20. 博客系统(页面设计)

热门文章

  1. Linux驱动编程 step-by-step (二) 简单字符设备驱动
  2. 关于EXPORT_SYMBOL
  3. argparse.ArgumentParser()的用法
  4. 使用 Vue + Flask 搭建单页应用
  5. 小程序实现长按删除图片
  6. css—盒子模型理解
  7. Atitit.技术管理者要不要自己做开发??
  8. Azkaban的Web Server源码探究系列20:resolvebuildFlow
  9. 使用docker commit 来扩展一个image
  10. 关联、聚合、组合的关系[转]