前言

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

    前言 需要提前说下的是,由于今日头条的文章的特殊性,所以无法直接获取文章的地址,需要获取文章的id然后在拼接成url再访问.下面话不多说了,直接上代码. 示例代码如下 public class Dem ...

  2. php爬虫邮箱邮件,简单网络爬虫实现爬取网页邮箱

    网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取 万维网 信息的程序或者 脚本 . 今天我们就以JAVA抓取网站一个页面上的全 ...

  3. Python爬虫实战,简单的爬虫案例,以及爬取百度贴吧网页原码和360翻译

    一.爬取网页上的图片 import requestsresponse = requests.get("http://file.elecfans.com/web1/M00/8B/33/o4YB ...

  4. 查看网站的爬虫协议,简单介绍爬虫协议robots.txt,避免爬虫爬的好,牢饭吃得早(保姆级图文)

    目录 什么是爬虫协议 查询方法 解读协议内容 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『Python』 系列,持续更新中 什么是爬虫协议 正经正规网站一般都会有设置爬虫协议,规定 ...

  5. Python爬虫基础:简单的爬虫入门示例(urllib库)

  6. 一步一步学python爬虫_初学Python之爬虫的简单入门

    初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据 ...

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

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

  8. Python 实现简单的爬虫

    Python 是一种跨平台的计算机程序设计语言,面向对象动态类型语言,Python是纯粹的自由软件,源代码和解释器cpython遵循 GPL(GNU General Public License)协议 ...

  9. Python爬虫原理与简单示例代码

    链接 链接 爬取知乎热榜话题: 链接 BeautifulSoup的使用1: url = 'http://www.cntour.cn/'strhtml = requests.get(url)soup = ...

最新文章

  1. 色彩(颜色)空间原理(中)
  2. 请选择JAVA中有效的标识_Java中有效的标识符是什么?
  3. Tomcat服务器的常用配置
  4. 一:c#基本语法(2)(老田学习笔记)
  5. Redis的LRU算法
  6. Ubuntu系统---NVIDIA 驱动安装
  7. 数字图像处理之频率域图像增强
  8. unity图片拖不进去_Unity UGUI实现简单拖拽图片功能
  9. 发生地震等灾难,死难者的存款会怎么处理?
  10. 电脑重新分区扩大c盘_两种方法,给电脑C盘增加10G的容量,电脑焕然一新
  11. Java中static作用及用法详解
  12. C++学习系列笔记(七)
  13. 广东科技学院计算机原理组成,201120122操作系统原理期中试卷edited广东科技学院付博士(4页)-原创力文档...
  14. linux 文件可执行_深入理解linux内核——可执行文件执行过程(2)
  15. python写入Excel时,将路径或链接以超链接的方式写入
  16. wps 打开xml格式乱码_WPS文件打开之后是乱码
  17. New Concept English3 Lesson 2. Thirteen equals one【精讲学习笔记】
  18. 根据正规文法构建状态转换图
  19. 海思HI3516A千兆网卡换百兆网卡配置方法
  20. 物体移动时,面朝移动方向旋转

热门文章

  1. win10鼠标不受控制乱动_鼠标失去灵敏度怎么办 鼠标失去灵敏度解决办法【介绍】...
  2. 给打印机发送打印命令,打印机不反应win7
  3. 生气了 说说腾讯游戏
  4. 2023山东国际养老服务业展览会/济南养老展/中国智慧养老展
  5. 仿京东BOE官网 html代码
  6. 【美化vim】vim 实用工具美化
  7. 软件测试入门学习笔记
  8. 如果一生只能读 7 本书......(赠)
  9. 怎么才能婉转地拒绝别人的告白
  10. VMware 解决 ubuntu 虚拟机 复制文件 失败 闪退