python小白也可以分分钟爬取微博数据,并生成有个性的词云,你get到了吗?

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

很早前写过一篇怎么利用微博数据制作词云图片出来,之前的写得不完整,而且只能使用自己的数据,现在重新整理了一下,任何的微博数据都可以制作出来,放在今天应该比较应景。



本文教你怎么用Python快速创建出有心意词云,即使是Python小白也能分分钟做出来。

准备工作

本环境基于Python3,理论上Python2.7也是可行的,先安装必要的第三方依赖包:



requirement.txt文件中包含上面的几个依赖包,如果用pip方式安装失败,推荐使用Anaconda安装

pip install -r requirement.txt

第一步:分析网址

打开微博移动端网址 ,找到女神的微博ID,进入她的微博主页,分析浏览器发送请求的过程



打开 Chrome 浏览器的调试功能,选择 Network 菜单,观察到获取微博数据的的接口是 ,后面附带了一连串的参数,这里面有些参数是根据用户变化的,有些是固定的,先提取出来。



再来分析接口的返回结果,返回数据是一个JSON字典结构,total 是微博总条数,每一条具体的微博内容封装在 cards 数组中,具体内容字段是里面的 text 字段。很多干扰信息已隐去。



第二步:构建请求头和查询参数

分析完网页后,我们开始用 requests 模拟浏览器构造爬虫获取数据,因为这里获取用户的数据无需登录微博,所以我们不需要构造 cookie信息,只需要基本的请求头即可,具体需要哪些头信息也可以从浏览器中获取,首先构造必须要的请求参数,包括请求头和查询参数。





uid是微博用户的id,

· containerid虽然不什么意思,但也是和具体某个用户相关的参数

· page 分页参数



python学习路线分三大阶段:基础-进阶-框架-项目实战

基础第一阶段:基础Python的理解。基础第二阶段面对对象编程(注重编程能力)

基础第三阶段面向对象“设计思想”-封装-继承。基础第四阶段python高级专题。

进阶班第一阶段:linux基础。第二:python web工具。第三python部署工具。

第四关系型数据库。第五Python web框架基础原理。

框架阶段.python web开发第一阶段web.py。基础第二Django基础。

第三flask基础。第四tornado基础,

项目实战:个人博客系统-微信开发-企业OA系统=网盘系统。

第三步:构造简单爬虫

通过返回的数据能查询到总微博条数 total,爬取数据直接利用 requests 提供的方法把 json 数据转换成 Python 字典对象,从中提取出所有的 text 字段的值并放到 blogs 列表中,提取文本之前进行简单过滤,去掉无用信息。顺便把数据写入文件,方便下次转换时不再重复爬取。





第四步:分词处理并构建词云

爬虫了所有数据之后,先进行分词,这里用的是结巴分词,按照中文语境将句子进行分词处理,分词过程中过滤掉停止词,处理完之后找一张参照图,然后根据参照图通过词语拼装成图。



最终效果图:





哪些人比较适合学Python

1.编程菜鸟新手:非常喜爱编程,以后想从事相关工作,但是零基础,不知道入门选择什么编程语言的朋友,其实是最适合选择Python编程语言的。

2.网站前端的开发人员:平常只关注div+css这些页面技术,很多时候其实需要与后端开发人员进行交互的;

3.SEO人员:很多SEO优化的时候,苦于不会编程,一些程序上面的问题,得不到解决,只能做做简单的页面优化。 现在学会Python之后,你和我一样都可以编写一些查询收录,排名,自动生成网络地图的程序,解决棘手的SEO问题。

4.在校学生:想有一技之长,或者是自学编程的爱好者,希望快速入门,少走弯路,都可以选择Python语言。

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习”关注。


欢迎大家加入千人交流答疑群:588+090+942


猜你喜欢

转载自blog.51cto.com/13726370/2120227
今日推荐