抽取自媒体新闻热词的技术实现
2018-09-13叶宇翔
叶宇翔
摘要:通过基于Python语言的网络爬虫对“今日头条”、“一點资讯”的热点推送新闻标题进行抓取,使用基于Python的中文分词工具对新闻标题数据进行分词统计处理。为了高效获取数据,对不同的网站使用不同的爬虫技术,在为期一个月的时间内对“今日头条”等自媒体新闻网抓取近万条热点新闻标题,在对数据进行分词统计及关键词提取后成功获取当月新闻中的热词。
关键词:网络爬虫;中文分词;自媒体;新闻传播;关键词
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0014-03
Abstract:Through the Python-based web crawler the Python-based Chinese word segmentation tool to capture the headline data of “www.toutiao.com” and “www.yidianzixun.com”. In order to efficiently obtain data, different spider technologies are used for different websites, and nearly 10,000 hot news headlines were crawled on the “www.toutiao.com” and other self-media news networks for a period of one month, and word segmentation statistics and keywords are used for the data. After the extraction, the hot words in the news of the current month were successfully obtained.
Key words: web crawler; Chinese word segmentation; media; news; keyword
在这个信息“大爆炸”的大数据时代,自媒体已成为网民最重要的阅读渠道,通过自媒体进行内容创业也是热门创业方向,大量企业、事业单位也在自媒体平台投入资源。自媒体文章的标题至关重要。面对每天海量的推送,标题是否讨喜决定了网民会不会阅读一篇文章;同样,对于内容创作者,引人注目的标题也是日常工作的重难点。
为了获得当月新闻热词,将运用基于Python语言的“网络爬虫”和“中文切词”两种技术。网络爬虫是一种用来自动浏览万维网的网络机器人。面对不同的网站以及多种多样的反爬虫技术,需要使用针对性的方法对所需数据进行高效的抓取,如面对动态加载的网页,使用模拟发送请求或使用Selenium模拟用户操作的方法抓取数据。中文切词是分析中文文本的必要步骤,只有应用良好的切词算法,数据才能被统计工具处理。此次研究采用著名的基于Python的Jieba分词工具。借助该技术,研究者在短时间内获得海量文章的有关数据,在获取数据之后,对其进行快速统计处理。
1 技术准备
1.1 数据源选取
“今日头条”是一款基于数据挖掘的推荐引擎产品,它为用户推荐新闻信息,提供连接人与信息的新型服务,是国内移动互联网领域成长最快的产品服务之一,据今日头条官方——截止2016年8月,今日头条累计激活用户数已达5.3亿,日活跃人数超过5500万,月活跃人数超过1.3亿,单用户每日使用时长超过74分钟。“一点资讯”与“今日头条”别无二致。
研究者选择以“今日头条”、“一点资讯”为主要抓取对象,是因为其为当今最为知名的自媒体之一,网站流量为其推送新闻的质量提供保证,而其巨大的数据源和对于热点推送的先进算法也可为研究提供大量现成数据,新闻来源遍布各地,其新闻标题更能反映整个网络自媒体的现状。
1.2 网络爬虫技术
1.2.1 基于BeautifulSoup4的静态网页爬虫
BeautifulSoup4是一个可以从HTML或XML文件中提取数据的Python库.它能够通过文档导航,查找,修改文档的方式获取需要的数据。多用于结合selenium使用。
1.2.2 基于页面请求的爬虫技术
爬取数据时如碰到通过JavaScript动态加载的数据以及使用了Ajax技术的网站如“今日头条”、“一点资讯”时,只有在不断下拉网页时才会加载新的内容,静态抓取技术的便不再可行。当用户下拉页面时,触发一个js事件,向服务器发送上面的请求取数据,然后通过一定的js逻辑把取到的这些json数据填充到HTML页面当中。
针对此类网页采用逆向分析法寻找网站API接口,通过模拟发送Ajax请求,接受JSON格式的返回数据,通过json.loads方法将其转换为dict类型,从中可以抽取关键信息,如新闻的标题、来源、发布时间等等。
逆向分析请求地址的特征是此技术的关键,若找到特征便可模拟发送数个请求以获取大量数据。而每个网站的请求地址特征不同,部分网站如“今日头条”对请求地址的特征值进行加密,难以模拟请求。此技术虽效率极高却依然存在其局限性。
1.2.3 基于selenium的爬虫技术
Selenium是一个基于Python的自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器。将Selenium与无头浏览器——没有界面的浏览器结合可以模拟用户在浏览器进行的操作,可以模拟下拉网页加载数据,亦可模拟点击,为爬虫程序提供了巨大的拓展空间,亦可用于回避诸多网站的反爬虫技术。此项技术具有极强的泛用性,而效率则不太理想。
1.3 分词工具