百度新闻资讯类信息爬虫--统计一年内关键词新闻的条数
背景
通过百度词条搜索,来查找300个关键词,在一年内发布新闻的条数。
最终效果实现如下:
实现思路
实现思路依然是:
- 先根据多页的url,来找到规律,构建起一页的url;
def format_url(url, params: dict=None) -> str:query_str = urllib.parse.urlencode(params)return f'{ url }?{ query_str }'def get_url(keyword):# https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=%E5%B9%B3%E5%AE%89%E9%93%B6%E8%A1%8C&medium=0&x_bfe_rqs=03E80&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn=0params = {'tn': 'news','rtt': 4,'bsst':1,'cl': 2,'wd': str(keyword),'medium': 0,'x_bfe_rqs': '03E80','tngroupname':'organic_news','newVideo': 12,'goods_entry_switch': 1,'rsv_dl':'news_b_pn'}url = "https://www.baidu.com/s"url = format_url(url, params)# print(url)return url
- 对单页的url解析,拿到其时间,按时间做dict求数目。同时注意如何判断最末页的条件。因为这里的末页改变后,页面仍然能响应出内容,因此我的解决方法是每次获取单页的第一条url,如果下一页的url与这条一致,那就属于到最后一页了,退出。
def parse_page(keywords):res_data = {}for keyword in keywords:print(keyword)flag = 1page = 0url = get_url(keyword)first_page_flag = ''# 当flag=1时,表示还有页面time_lis = []while flag:url_page = url + f'&pn={page}'print(url_page)html = get_page(url_page)content = etree.HTML(html)# 取第一个链接res_href = content.xpath('//*[@id="1"]/div/h3/a/@href')if first_page_flag == res_href:print("无更多页面!~")flag = 0else:first_page_flag = res_hreffor i in range(1, 11):title_xpath = f'//*[@id="{str(i)}"]/div/div/div/div/span[2]/text()'res_title = content.xpath(title_xpath)if len(res_title) != 0:time_lis.append(res_title[0])page += 10# print(time_lis)res_data[keyword] = time_lis# print(res_data)print(res_data)return res_data
- 先生成一年的date,然后拿date去取该日对应的资讯条数。结果如下:
def trans_date(s_date):# 传入单个字符串,统一date_list = re.split('[年月日]', s_date)[:-1]date_list_1 = ['0' + d if len(d) == 1 else d for d in date_list]date_format = '-'.join(date_list_1)return date_format
# 时间范围
def templete_date():# 输出liststart='2020-12-31'end='2021-12-31'date_temp = []datestart=datetime.datetime.strptime(start,'%Y-%m-%d')dateend=datetime.datetime.strptime(end,'%Y-%m-%d')while datestart<dateend:datestart+=datetime.timedelta(days=1)date_temp.append(datestart.strftime('%Y-%m-%d'))return date_temp
代码
公众号:diting_dapeng
回复"百度资讯"获取源码,欢迎一起学习交流~
百度新闻资讯类信息爬虫--统计一年内关键词新闻的条数相关推荐
- 移动互联网时代,怎样打造一款新闻资讯类产品?
公众号后台回复"图书",了解更多号主新书内容 作者:啊庄 来源:晓庄同学产品 新闻资讯获取一直是人们必不可少的一项重要生活活动. 从最开始的纸媒体时代,到各大门户并立的网站时代,再 ...
- 移动端点击保存图片_财经理财新闻资讯类网站织梦模板(带手机端)
模板名称:财经理财新闻资讯类网站织梦模板(带手机端)+PC+移动端+利于SEO优化模板介绍: 织梦最新内核开发的模板,该模板属于财经.理财.投资.新闻.资讯料类企业使用, 自带最新的手机移动端,同一个 ...
- 【笔记-uni app】《uni-app 快速入门 从零开始实现新闻资讯类跨端应用》
uni-app 快速入门 从零开始实现新闻资讯类跨端应用 第12章 项目发行与打包 12-03 App端发行打包 一.发行,原生app-云打包 把包提交给dcloud的服务器,通过dcloud打包完后 ...
- ios appstore 审核 Guideline 5.2.2 - Legal ios新闻资讯类APP5.2.2被拒
新闻资讯类APP5.2.2被拒. 新闻资讯类APP5.2.2被拒,说是上传什么资质 Guideline 5.2.2 - Legal Your app contains content or featu ...
- 新闻资讯类网站的PC端前台模板分享
PC端新闻资讯模板 背景 效果图 技术方案选型过程 方案敲定 结语 背景 我同学公司需要开发一个pc端的新闻咨询网址,后端和app端都有了,具体一点就是已经有了后台监控和发布系统,并且实现了手机app ...
- (PC+WAP)织梦模板财经新闻资讯类网站
模板介绍: 织梦内核开发的模板,该模板属于社会财经新闻资讯类企业使用, 自带最新的手机移动端,同一个后台,数据即时同步,简单适用! 原创设计.手工书写DIV+CSS, 完美兼容IE7+.Firefox ...
- 推荐系统应用---新闻资讯类
很久很久以前,大家获取信息的渠道可能就是读书,听广播,看报纸,看电视等等,可以获得的信息也非常少.然而当今的社会,我们整天都会发愁从无数的巨大的永远都不可能看完的信息中很轻松地找到需要的信息,也就是说 ...
- eyoucms自媒体新闻资讯类网站模板
简介: 模板介绍:本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终 ...
- uni-app开发从入门到新闻资讯类跨端应用项目
1.开发流程与规划.mp4 2.应用效果展示与分析.mp4 3.微信小程序入门1.mp4 4.微信小程序入门2.mp4 5.uni-app 核心知识点概览.mp4 6.搭建uni-app开发环境.mp ...
最新文章
- 马斯克的SpaceX又双叒叕融资了:喜提131亿,估值破3000亿
- 浅析网站首页设计需注意的要点
- five months plan
- SQL中使用视图的优点和缺点是什么
- 小米11 Pro系列细节再曝光:大杯大升级!
- 最新的ndkr20编译c_NDKr20使用clang编译ffmpeg
- android Activity的Task Affinity lanchMode
- php 将url转成伪静态,php实现url伪静态化,全过程详解
- jieba库(jieba库的介绍以及分词原理,jieba的三种模式和常用函数,利用Jieba模块进行中文词语的统计)
- fastjason 0day 漏洞修复
- 解决谷歌浏览器最新chrome94版本CORS跨域问题
- 系统服务器与手机关系,手机与云服务器交互
- Python MySQL 1054 Unknown column '\xe7\x88\xb1\xe6\x83\x85' in 'where clause'错误分析
- Python干旱指数库climate_indices学习
- 灰狼算法(GWO)优化xgboost的分类预测模型,多输入单输出模型,GWO-xgboost分类预测。
- C语言中 编译预处理命令的作用有哪些,C语言系列——预处理命令
- 【六袆 - 点赞】简历字体和字号规范
- 高老师谈网络工程师之路
- 微信小程序实现波浪动画效果
- 【黑马程序员西安中心】一匹“黑马”的自述
热门文章
- Android移动应用设计与开发(第2版)——基于Android Studio开发环境 胡敏 黄宏程 李冲编著
- 解决:Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
- 用c语言编写小狗图形,小狗的图片简笔画
- Chpater2.3 执行AD HOC命令
- 淘宝电商:淘宝卖家如何快速提升店铺自然搜索流量?
- Matplotlib数据可视化高级
- 高德地图看各省分界线_从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行...
- “燕云十六将”之张永生(13)
- html5全屏显示百度地图,百度地图实现地图全屏(放大页面全屏)
- DataFrame 数据筛选