最近在出差,发现住的宾馆居然有小强。所以出差无聊之际,写了点爬虫的代码玩玩,问就是应景。本篇文章主要是爬取CSDN全站综合热榜的100个标题,然后分词提取关键词,统计一下词频。
我想了下,对于其他博主还是有用的,可以看看什么标题可以上热榜,就分享一下吧。顺便把我解决各类问题的方法,说一说。
使用的IDE为:spyder(有看着界面不习惯的,忍一下,不关键)
页面爬取使用chromedriver,至于原因我后面会说。
分词器:jieba
爬取页面地址:https://blog.csdn.net/rank/list
这里说一下为什么没有用requests直接获取页面源码,主要是因为该页面并不能直接请求出源码。而是通过页面滚动到最下方,才可以显示出全部的100个排名的文章。
所以我的思路是,使用chromedriver,然后执行js实现滚动页面到最下方。
这里需要说明一下chromedriver的下载,需要根据你google浏览器的版本来。我的笔记本事mac,可以点击左上角的Chrome,再点击关于Google Chrome看看自己的浏览器版本。
分享一下chromedriver的下载地址:google chrome driver下载地址
简单说明一下driver的原理,就是模拟浏览器打开url的操作,就像我们手点一样,具体原理改天可以再聊聊。
不废话了,上爬虫工具代码
1、代码主要是一个工具方法,使用diver打开浏览器。然后通过js代码,模拟向下滚动的操作。
2、根据你的网络条件,里面的超时时间你可以调整。避免还没有滚动到最下面就结束了,因为我宾馆的网比较卡,所以设置的比较大。
3、返回页面源码,为了后面的xpath解析。
验证一下
OK,已经拿到了页面源码了。
我们把关键词提取的方法也准备一下。不废话,上代码。
1、简单说明一下,方法取的是权重最高的3个词,可以按照你的喜欢调整。
2、把相同的词做一个计数,方便把100的标题关键词词频统计用。
主程序主要是将源码中的标题,使用lxml进行元素提取,获取标题。然后词频统计后输出结果文本。
不废话,上代码。
1、xpath怎么取?google浏览器支持右键直接copy,但是还是建议了解一下xpath相关语法。
2、把英文单词统一小写,避免重复。
3、按照词频倒序排列输出的,最多次数的在前面。
验证结果
OK,不出意外,java是yyds。
可以看到最后的统计里面有一些符号,怎么说?可以通过jieba停用词去掉,看你怎么筛选了。
申明一下,本文案例仅研究探索使用,不是为了恶意攻击。
如果本文对你有作用的话,请不要吝啬你的赞,谢谢。
以上就是本篇文章【Python 详解爬取并统计CSDN全站热榜标题关键词词频流程】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/6975.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多