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实现简单的爬虫之今日头条相关推荐
- java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片
[Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...
- [Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图
[Python3网络爬虫开发实战] --分析Ajax爬取今日头条街拍美图 学习笔记--爬取今日头条街拍美图 准备工作 抓取分析 实战演练 学习笔记–爬取今日头条街拍美图 尝试通过分析Ajax请求来抓取 ...
- Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻
0x0 背景 最近学习爬虫,分析了几种主流的爬虫框架,决定使用最原始的两大框架进行练手: Jsoup&HttpUnit 其中jsoup可以获取静态页面,并解析页面标签,最主要的是,可以采用类似 ...
- 今日头条 爬虫 java_Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻...
0x0 背景 最近学习爬虫,分析了几种主流的爬虫框架,决定使用最原始的两大框架进行练手: Jsoup&HttpUnit 其中jsoup可以获取静态页面,并解析页面标签,最主要的是,可以采用类似 ...
- java gui 日历_Java实现简单日历小程序 Java图形界面小日历开发
今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...
- java 日历界面_Java实现简单日历小程序 Java图形界面小日历开发
今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个calendarbean类,用于基本的日期计算: package other1; import jav ...
- java银行取款_Java写简单的银行取钱系统
按ctrl+a 选中所有的代码删除,再复制下面的代码输入即可 import java.util.Scanner; public class 简单的银行取钱系统 //class的名字可以自己新建和这个一 ...
- java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...
- java 爬虫_Java原生代码实现爬虫(爬取小说)
Java也能做爬虫. 现在提到爬虫人第一个想到的就是python,其实使用Java编写爬虫也是很好的选择,Java成熟的爬虫框架很多,下面给大家展示一个使用Java基础语言编写的爬取小说的案例: 实现 ...
最新文章
- php图片特效,php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
- 麻省理工牛人解说数学体系
- 深入理解 Java内存模型
- BAP 使用DYNP_VALUES_READ来获取屏幕字段值
- 微信小程序 长按图片不出现菜单_微信小程序实现长按删除图片的示例
- 扩展枚举功能的两种方法
- Android Fragment功能的例子
- gitblit无法启动服务
- 行业观察:2021年LTE将成M2M市场主导技术
- element ui 框架的优势_Element UI 框架
- 使用夜神模拟器完美破解(反编译)微信小程序以及问题汇总
- 一周AI要闻回顾 | FB新研究颠覆CNN,加州新政允许无人卡车路测
- Centos7值得收藏的网站
- vue 项目实践 -ele 表单验证
- MindSpore实现手写数字识别
- 大津二值化算法(Otsu)
- 正则表达式 re.compile() 相关
- 单片机学习笔记——微机基础知识
- linux ls 目录颜色,改变ls 中目录颜色的方法
- 博客系统(页面设计)