推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的网络关键字热度获取工具的研究与实现

更新时间:2019-12-24 19:10:06 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

搜索指数,是以各大搜索网站海量网民行为数据作为基础的数据分析统计结果,是衡量词条搜索热度的重要指标,对数据分析具有重要的参考价值。本文详细介绍了一个基于Python的网络关键字热度获取工具的研究与实现过程,用以获取现有指数平台的指数数据。文中以搜狗指数、微信媒体指数为例,详细叙述了如何寻找URL入口、获取并解析数据、以及如何清洗数据的技术与方法。测试结果表明,该爬虫工具可以准确地获取目标关键字在自定义时间段内的指数热度情况,具有实用价值。


部分文件列表

文件名 大小
基于Python的网络关键字热度获取工具的研究与实现.pdf 1M

部分页面预览

(完整内容请下载后查看)
Data Base Technique  
数据库技术  
·
基于 Python 的网络关键字热度获取工具的研究与实现  
文/孟亚茹 姚凯学 安世博  
不仅可以反映出某关键字在特定网站的搜索规  
模,还可以反应出该时间段内热度涨跌态势,  
准确及时反映突发事件网络舆情的变化情况。  
搜索指数的出现,对市场分析与决策具有重要  
且深远的意义。  
库请求网站,得到网站所有HTML 数据,  
Requests GetPost 等四种请求方式,包括  
了所有HTTP/HTPPS 的请求方式,比其他  
CC++Java方便快然后辨别  
返回的结果果返回的HTML格式的数据,  
则可以使lxml 库去解析网页,通过节点提  
取等一些常规方法,提取出真正需要的数据。  
搜索指数,是以各大搜索网  
站海量网民行为数据作为基础的  
数据分析统计结果,是衡量词条  
搜索热度的重要指标,对数据分  
析具有重要的参考价值。本文详  
细介绍了一个基Python网络  
关键字热度获取工具的研究与实  
现过程,用以获取现有指数平台  
的指数数据。文中以搜狗指数、  
微信媒体指数为例,详细叙述了  
如何寻URL获取并解析  
数据、以及如何清洗数据的技术  
与方法。测试结果表明,该爬虫  
工具可以准确地获取目标关键字  
在自定义时间段内的指数热度情  
况,具有实用价值。  
网络爬(Web Crawler) 技术是一种快速  
获取搜索指数相关信息的全新手段。本文在概  
述网络爬虫关键技术的基础上搜狗搜索” 如果返回的json 格式的数据,则可以通过  
为研究对象,详细介绍了一款基于网络爬虫技  
术的搜索指数获取工具的研究与实现。  
json 解析获取数据。这两步包含了数据抓取的  
核心的部分,基本可以得到想要的数据。  
1.2 通用爬虫工作流程  
1 关键技术  
网络爬虫的基本工作流程如下:  
1选取合适的起URLURL  
队列;  
1.1 Python爬虫  
Python 一款开源可以运行在任  
何主流操作系统中的解释性高级编程语言。  
Python 简洁的语法可以高效的节约开发者的开  
发时间以及开发成本。网络爬虫是用来获取网  
络数据的重要工具。关于网络爬虫技术的研究  
不计其数。爬虫程序使Python 的一个重要  
因素,就Python 为爬虫开发提供了丰富的  
标准库以及强大的第三方库。爬虫程序完全模  
拟浏览器访问网站的流程,首先使requests  
2)从待爬URL 队列中取URL,  
由网页下载模块下载 URL 应的网页  
HTML,传递给数据解析模块之后URL 放  
进已爬URL 队列;  
【关键词】Python 爬虫 指数 数据获取  
3)数据解析模块解析收到HTML,  
查找标签,提取出标签内所需数据,传递至数  
据清洗模块,经提取后URL 传递URL 调  
度模块;  
搜索指数,是指以网民的搜索行为为基  
其搜索内容以及搜索次数进行统计分析,  
得出的该目标关键字被搜索的频次。搜索指数  
4)调度模块收到解析模块传递过来的  
<< 上接 180 页  
统增加新的计算节点,分配新的计算资源,计  
算节点的退出机制也是按CPU 占用率的累  
积时间来决定的。对网络接口同样也是采取虚  
拟化的方式,建立虚拟的网络接口、虚拟的交  
换机,并根据网络负载情况动态添加和删除网  
络接口资源。  
务信息化的投资成本。  
[4] 稚萱 . 云计算在基于 NGB 智慧家  
庭业务平台上的应用 [J]. 联网技  
,2012(11).  
7 经济效益  
[5].云计算须高度重云  
安全”[J].国信息,2011(01).  
[6].IT云计算时代的发展趋  
[J].,2012(11).  
出口退税云平台建设完成投入市场后能  
使我单位的出口退税系列软件的市场占有率提  
15% 以上,带动出口退税系统软件产品销  
售收入增幅8%~10% 左右,同时增加就业  
32 人。  
5.3 业务平台层  
[7]Daniel Nurmi.The Eucalyptus Open-  
source Cloud-computing System[J/OL]  
Google,2009.  
建立在虚拟设备层之上的统一管理平台,  
包括应用元数据定义、协议标准定义、服务构  
建库退税工作流框架及基础的节点管理、  
资源管理、安全审计等。  
8 总结  
[8]广, , , . 拟化技  
术与原理实[M].京:电子工业出版  
,2012.  
云计算相关应用已经进入实际应用阶段,  
各类通用型应用大量涌现。但是云技术应用如  
何与具体行业融合,产生实际商业价值还有很  
长一段路要走。本文积极探索云计算及相关技  
5.4 应用服务层  
作者简介  
为出口企业提供具体服务的应用层接口, 术,初步将云计算技术应用到具体的出口退税  
周红,毕业于南京大学计算机系,南京理工大  
学工程硕士,研究方向是大数据的价值挖掘及  
其应用。现就职于南京擎天科技有限公司,任  
税务产品事业部项目总监,负责税务领域软件  
产品的产品规划、研发设计和项目管理工作。  
曾主持国家金税三期项目信息管理子系统的分  
析设计工作和高雄捷运自动收费系统的研发和  
实施工作。  
这些应用以服务的形式对外发布。  
行业,为出口退税领域信息化工作迈向更深层  
次的发展提供有益参考。  
6 技术指标  
参考文献  
[1].()[M].子工业出  
1)平台同时在线用户数3000 个用  
户左右并发量到达预设阀2700 个,  
能够动态配置)时,资源监控模块会自动配置  
新的节点加入资源池。  
,2011.  
[2].拟化与云计[M].子工业出  
,2009.  
2)点击响应时间平均1 秒,长事务  
处理类型的点击响应时间控制60 秒。  
3)平均故障修复时2~8 小时。  
[3],,,.平台  
多级负载平衡评测方[J].件产业与  
,2013.  
作者单位  
南京擎天科技有限公司  
江苏省南京市  
4)降低出口企20%~50% 的退税业  
211800  
电子技术与软件工程  
Electronic Technology & Software Engineering  
· 181  
数据库技术  
Data Base Technique  
·
URL 后,将其和已抓取URL 队列对比,进  
行去重处理,筛选出未爬取URL 放入待爬  
URL 队列;  
使requests get requests get  
方法将传入数据写进字典格式的数据结构并传  
requests params 该网站的请  
求必须有浏览器信息,所以需要给请求添加请  
求头,模仿浏览器对网站进行访问。请求成功  
之后,返回的数据json 字符串,目标数据  
包含在其中,实现代码如下:  
import requests  
查询电影“我不是药神”上映前后两天与  
上映当天数据,日期2018.7.32018.7.7 的  
具体数据,得到的结果为:  
5)网络爬虫系统2~4 步循环,直到  
待爬取队列中URL 全部爬取完毕,或者用  
户终止进程;  
[('2018-07-03', 70808), ('2018-07-04',  
132629), ('2018-07-05', 283926), ('2018-07-06',  
472971), ('2018-07-07', 587893),],与网站完全  
相同,表明程序通过测试。  
6)数据清洗模块发现并纠正数据文件  
中可识别的错误,最终将数据存入数据库。  
3.6 技术难点  
HEADERS = {  
2 研究对象、数据来源及目标  
'Accept': '*/*',  
搜狗指数网站在阻止爬虫工具爬取数据  
方面十分严格,如何绕过防护是工具开发的技  
术难点。开发者需要全面伪装爬虫程序,将解  
析格式、主机地址等详细信息写入请求头,保  
证网站获取的访问请求是一个正常的用户访  
问,以保证数据的正确性和完整性。  
'Accept-Encoding': 'gzip, deflate',  
'Accept-Language': 'zh-CN,zh;q=0.9',  
'Connection': 'keep-alive',  
2.1 研究对象  
指数平台是新型的平民化的数据展示平  
台,他旨在普及大数据在民众日常生活中的使  
用。搜狗指数是以搜狗搜索平台上海量网民行  
为数据为基础的数据分享平台,为用户提供数  
据支持。本文以搜狗指数为研究对象,详细描  
述网络爬虫技术的应用方法。  
'Host': 'index.sogou.com',  
'User-Agent':'Mozilla/5.0 (Windows NT  
6.1; Win64; x64) AppleWebKit/537.36 (KHTML,  
like Gecko) Chrome/62.0.3202.75 Safari/537.36',  
}
4 结语  
本文构建了基Python 的抓取搜狗指数  
的爬虫工具,抓取电影“我不是药神” 上映  
前后两天与当天网民搜索行为数据。爬取数据  
与搜狗指数网站公布数据完全相同,表明通过  
该爬虫可以高效快捷的得到所有数据,高效的  
为数据研究提供真实数据。  
# 防止程序假死,添加请求超时  
w e b _ d a t a = r e q u e s t s .  
get(url,headers=HEADERS, params=params,  
timeout=30)  
数据来源:此次研究为搜狗指数,实现定  
向爬取标地址(搜  
狗指数官网)。  
2.2 爬取目标  
return web_data  
3.3 解析数据  
本文以爬取搜狗指数网站“我不是药神”  
词条为案例,详述通过网络爬虫技术获取“我  
不是药神”的搜狗指数的过程与方法,以及在  
爬取数据过程中会出现的问题和解决策略。  
参考文献  
通过解析得到的json 字符串,所以需  
要把将其转换json 匹配的数据类型,然后  
使Python 的字典数据获取方法,得到目标  
数据。搜狗指数包含data 字段pvList 中,  
取两key-value 值即可获得目标数据,代码  
如下:  
[1], . 于搜索引擎关注度的  
网络舆情时空演化比较分析—以谷歌  
趋势和百度指数比较为[J]. 报杂  
,2013,32(03)ꢀ7-10,16.  
3 实现过程与技术难点  
[2],.题网络爬虫研究综[J].  
计算机工程与科学 ,2015,37(02)ꢀ231-  
237.  
3.1 数据搜索入口URL  
import json  
目标地址(搜狗  
指数)与其他网站相比具有特殊性,即数据  
请求接口为独立网址,需通过抓包的方式获  
取精确的数据接口并传入需求数据:接口为  
需传入的  
数据为:关键(keyword),起始日(start_  
date),结束日(end_date),代码如下:  
import datetime  
detail_data = json.loads(web_data.content)  
date_datas = detail_data['data']['pvList']  
if not data_datas:  
[3] 陈 政 伊 , 袁 云 静 , 贺 月 锦 等 . 基 于  
Python微博爬虫系统研[J].众科  
,2017,19(08)ꢀ8-11.  
return  
[4]PINKERTON B.Finding what people wantꢀ  
experiences with the WebCrawler[EB/  
org/resoruces/phd/pinkerton_2000.  
pdf.  
3.4 数据清洗与整理  
前几步工作获取的数据格式不规,  
接下来对数据进行重新整理,日期改写成:  
url=”  
# 把数据的字符串类型的时间转换成时间  
格式  
2018-01-01’格式,指数数值改写int 类型。 [5]AHMADI-ABKENARI F,SELAMAT A.  
将最终的数据保存到一个列表数据结构中返回  
给用户,代码如下:  
An architecture for a focused  
trend parallel Web crawler with  
the application of clickstream  
analysis[J].Information Sciences,  
2012,184(01)ꢀ266-281.  
params = {  
result = []  
'kwdNamesStr': keyword,  
for date_data in date_datas:  
'startDate': start_date,  
for each_data in date_data:  
'endDate': end_date,  
year = str(each_data['date'])[0:4]  
month = str(each_data['date'])[4:6]  
day = str(each_data['date'])[6:8]  
dates = year + '-' + month + '-' + day  
result_each_data = dates, int(each_data['pv'])  
result.append(result_each_data)  
return result  
[6]立柱.焦爬虫技术研究综[J].  
计算机应,2005,25(09)ꢀ1965-1969.  
[7].RICHARD L. Python网络爬  
[M].民邮电出版,2016.  
'dataType': 'SEARCH_ALL',  
'queryType': 'INPUT',  
}
五个字段从上到下的含义分别为:  
'kwdNamesStr' 搜索的关键字'startDate'  
请求数据的起始日'endDate':请求数  
据的起始日'dataType'请求的数据类  
型,'queryType' 查询的方式。  
作者简介  
孟亚茹(1991-),女,河北省张家口市人。  
最后,将获取的数据存储于非关系型数  
MongoDB 中。  
硕士学位。主要研究方向为软件工程。  
作者单位  
贵州大学计算机科学与技术学院 贵州省贵阳  
3.2 获取网页数据  
3.5 数据验证  
市 550025  
●基金项目:科学技术部科技人员服务企业项目(2009GJF20020)。  
电子技术与软件工程ꢀꢀ  
Electronic Technology & Software Engineering  
182 ·  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载