根据

爬虫 spider07——爬取腾讯娱乐新闻

https://blog.csdn.net/qq_41946557/article/details/102566143

进行修改!

代码:


import com.alibaba.fastjson.JSON;
import com.offcn.springcloud.jedis.JedisPoolUtil;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
import redis.clients.jedis.Jedis;import java.io.IOException;
import java.util.Iterator;
import java.util.List;public class TestQQ {private final  String key="bigdata:spider:url";@Test //根据标签名称public void jsoupParse01() throws IOException {String url="https://pacaio.match.qq.com/irs/rcd?cid=146&token=49cbb2154853ef1a74ff4e53723372ce&ext=ent&page=1&callback=__jp6";CloseableHttpClient closeableHttpClient = HttpClients.createDefault();HttpGet httpGet=new HttpGet(url);//执行请求 user center pageCloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpGet);HttpEntity entity = closeableHttpResponse.getEntity();//响应实体转换成字符串String content = EntityUtils.toString(entity, "GB2312");//把字符串截取成json格式数据String jsonContent= StringToJson(content);//把json转换成java对象,并以list形式返回List<News> news=jsonToObject(jsonContent);System.out.println("源数据量:"+news.size());//获取不重复的数据List<News> newsList = cleanNews(news);System.out.println("新数据量:"+newsList.size());}//清洗爬取重复的数据public List<News> cleanNews(List<News> listNews){//通过迭代器遍历新闻listIterator<News> iteratorNew = listNews.iterator();while(iteratorNew.hasNext()){News news = iteratorNew.next();//获取redis连接对象Jedis jedis = JedisPoolUtil.getJedis();//与redis库比较数据Boolean isExist = jedis.hexists(key, news.getUrl());//true 存在 false 不存在if(!isExist){//false 不存在System.out.println("不存在:"+news.getUrl());//存储数据到redisjedis.hset(key,news.getUrl(),objectToJson(news));}else {//true 存在System.out.println("存在:"+news.getUrl());//删除list中重复的数据iteratorNew.remove();}}return listNews;}//java对象转换成jsonpublic String objectToJson(Object object){return JSON.toJSONString(object);}/*** string转换成json工具方法* @param srcJson* @return*/public String StringToJson(String srcJson){int start=srcJson.indexOf('(')+1;int end=srcJson.lastIndexOf(')');String jsonContent= srcJson.substring(start,end);return  jsonContent;}public  List<News> jsonToObject(String srcJson){//通过fastjson把json字符串转换成java对象NewsCollection newsCollection = JSON.parseObject(srcJson, NewsCollection.class);List<News> news = newsCollection.getData();for (News newsMessage : news) {System.out.println(newsMessage);System.out.println("---------------------------------------------------------");}return news;}
}

结果展示:

爬虫 spider08——爬取腾讯娱乐新闻【使用redis去重】相关推荐

  1. 爬虫 spider07——爬取腾讯娱乐新闻

    四要素: 首先,确定首页URL     [谷歌浏览器 F12][https://new.qq.com/ch/ent/] 代码展示: 实体类News : public class News {publi ...

  2. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  3. 爬虫实战——爬取腾讯招聘的职位信息(2020年2月2日)

    爬取腾讯招聘的职位信息 思路分析 特别说明 1.获取PostId列表 2.爬取详情页面 3.保存数据 完整代码 结果展示 总结分析 思路分析 特别说明 本文以Java工作岗位信息为例进行说明,如果想爬 ...

  4. python爬取腾讯新闻_python爬虫实战――爬取腾讯新闻 !

    无论我们通过浏览器打开网站.访问网页,还是通过脚本对URL网址进行访问,本质上都是对HTTP服务器的请求,浏览器上所呈现的.控制台所显示的都是HTTP服务器对我们请求的响应. 以打开腾讯新闻官网为例, ...

  5. requests使用re爬取腾讯体育新闻

    简介 爬取新闻标题 1. 安装 pip install request pip install fake_useragent 2. 演示 进入网址,查看网页源代码 找到标题界面,根据li标签的特征使用 ...

  6. 使用selenium爬取腾讯热点新闻

    在爬取之前我一直都陷入了一个误区,我认为只用selenium就可以实现这个工作,事实上它确实是可以,只不过selenium是自动化测试工具,可以驱动浏览器(有界面,无界面)来执行特定的操作,可以模仿人 ...

  7. 腾讯爬虫python_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 IDE VS2019 Python3.7 先上代码,代码非常简短,包含空行也才50行,多亏了python强大的库 importosimpo ...

  8. python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

  9. python爬取收费漫画_python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

最新文章

  1. apm最高的记录_2020年秋季APM专业课推荐
  2. GitHub超实用操作
  3. 云计算应用之路--第三届中国云计算大会
  4. 博客园是否提供trackback的rss
  5. 洛谷 P1908 逆序对(树状数组+离散化)
  6. Win10发布微码,修复Intel CPU内核数据泄漏新漏洞 (含视频)
  7. windows 和 ubuntu服务器之间用Xshell互传文件
  8. matpower学习笔记
  9. 搭建VC2010 开发环境,创建《C语言实现俄罗斯方块游戏》教程
  10. java 自动判断文件编码_Java自动获取文件和文件流编码
  11. java emoji表情_java emoji表情存储的解决方法
  12. DHU数据结构-循环单链表-ADT应用-圆桌问题
  13. 如何在CSS和HTML中创建垂直线...
  14. “NING咖啡”来袭,李宁的流量把戏还是真未来?
  15. P4961 小埋与扫雷
  16. 30个设计精美的Email Templates[邮件模版] (建议收藏)
  17. dcs降落教程_【速攻组】DCS黑鲨入门教程
  18. 《ida主流插件使用》(2)windows下stack_strings插件使用
  19. 努比亚Z7 mini刷机教程_recovery卡刷刷机教程
  20. wps带阴影的边框怎么设置_怎么把表格加框_win7系统下wps设置阴影边框的方法

热门文章

  1. cocos工程里面“”invalid ''cobl” in fuction xxx原理与解决方案
  2. 洛谷 - P3690 【模板】Link Cut Tree (动态树)(LCT模板)
  3. Gym - 102361A Angle Beats(几何)
  4. HDU - 5667 Sequence(矩阵快速幂+费马小定理降幂)
  5. 用于web网页的html文件属于,南开15春学期《Web页面设计》在线作业满分答案
  6. linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)
  7. 在Linux中安装R语言包,遇到无法验证下列签名的错误
  8. Little Pony and Elements of Harmony(CF 453 D)
  9. 10.OD-强制在OEP前加载dll
  10. (九)boost库之文件处理filesystem