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<Map> maps=new ArrayList<>();
  //遍历这个jsonArray,获取到每一个json对象,然后将其转换成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();
      //获取文章标题
      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简单爬虫程序
今日头条 爬虫、爬虫爬取今日头条、今日头条新闻采集爬虫、今日头条 爬虫框架、今日头条 网络爬虫,以便于您获取更多的相关知识。

时间: 2024-09-28 07:10:29

java实现简单的爬虫之今日头条_java的相关文章

java编写简单的E-mail发送端程序_java

本文实例介绍了简单E-mail发送端程序的Java实现代码,分享给大家供大家参考,具体内容如下 在这个代码中,有几个注意点强调一下: 1.使用 Socket 与 SMTP 邮件服务器取得连接,注意 SMTP 服务器的主机名: 2.使用 data 命令时,若写了 subject (主题)之后,邮件的正文部分必须与 subject 之间有一个空行,即"回车+换行",在代码中则是 \r\n : 3.同样需要将发件人的邮箱用户名.密码进行 BASE64 编码之后再传给 SMTP 服务器: 4.

Java Web 简单的分页显示实例代码_java

本文通过两个方法:(1)计算总的页数. (2)查询指定页数据,实现简单的分页效果. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 先给大家展示下效果图: 题外话:该分页显示是用 "表示层-控制层-DAO层-数据库"的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步.废话不多说了,开始进入主题,详细步骤如下所示: 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据

JAVA实现简单抢红包算法(模拟真实抢红包)_java

闲来无事,最近项目需求要写出用户登录首页来发现金红包,没有限额.我就自己稍微计算了一下如果有限额该怎么写.觉得这样与微信红包差不多.等项目需求完成以后.正好来博客贴一下我自己写的拆红包算法.个人觉得这个算法比较模拟现实抢红包规则.废话少说.先贴代码; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.ut

Android 仿今日头条简单的刷新效果实例代码_Android

点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感觉还不错,整理一下. MainActivity package com.example.fragmentmytest; import android.content.DialogInterface; import android.graphics.Color; import android.os.B

Android 仿今日头条简单的刷新效果实例代码

点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感觉还不错,整理一下. MainActivity package com.example.fragmentmytest; import android.content.DialogInterface; import android.graphics.Color; import android.os.B

仿今日头条滑动评论效果

开发中碰到问题之后实现的,觉得可能有的开发者用的到或则希望独立成一个小功能DEMO,所以就放出来这么一个DEMO. 原本觉得是最后完成后发网站客户端的,可是这样体现不出一个功能一个功能的分析实现效果,而且周期时间长,所以就完成一部分,发一部分,敬请谅解. 下面的菜单弹出效果在很多的新闻阅读器上都有,比如今日头条.360新闻等.下 其实这个实现起来很简单,看其效果,其实就是一个PopupWindow,之后设定相应postion的按钮点击属性,之后获取按钮的位置,给它设置动画显示消失就可以出现了.

仿今日头条顶部导航效果

 之前发现很多人在群里面.论坛上求网易新闻客户端的源码,之后我就去下了个网易新闻客户端和今日头条新闻客户端,发现他们的大体是一样的,于是在最近的空闲时间,便去琢磨如何去实现这样一个APP. 要知道它们是如何实现的,用到了什么第三方库文件,反编译便是很好的一个了解方法,如果你想要了解如何反编译可以点击这个链接:反编译就这么简单 只是一般的APK打包后都是被混淆过的,所以没那么好了解他的每个界面是如何实现的,没事,那就自己慢慢摸索或则从它的资源文件中提取布局了解下整体的大概情况. 我通过反编译 --

今日头条版权被对手助推、纸媒焦虑

我曾经在虎嗅上撰文唱衰过内容的个性化推荐,其中举的例子主要就是今日头条.在近期今日头条宣布C轮融资1亿美金后,版权问题又再次困扰着这个传统门户新闻客户端的挑战者.传统纸媒们一面高呼被侵犯了版权,另一面又死乞白赖的求着能够帮助导流量,这种两难抉择困境也显得很是可笑.从一个旁观者的角度,我觉得有必要站出来还原下事实真相. 这应该有竞争对手火上浇油 昨天(6月5日)早上看到大量唱衰今日头条的新闻,其实还是感觉很惊讶,因为这样一家只是在业内小有名气的app,本不应该这样万众瞩目.融资1亿美金,在充满浮躁

Android应用中仿今日头条App制作ViewPager指示器_Android

一.概述顶部ViewPager指示器的字体变色,该效果图是这样的: 大概是今天头条的app,神奇的地方就在于,切换ViewPager页面的时候,顶部指示器改成了字体颜色的变化,个人觉得还是不错的. 那么核心的地方就是做一个支持字体这样逐渐染色就可以了,我大概想了32s,扫描了一些可能实现的方案,最终定位了一个靠谱的,下面我就带大家开始实现的征程. 实现之前贴一下我们的效果图:1.简单使用 效果如上图了,关于颜失色的改变我添加了两个方向,一个是左方向,一个是有方向. 单纯的使用,可能觉得没什么意思