Python3爬取QQ空间信息(下)

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

内容回顾:

Python爬取QQ空间信息(上)

按照(上)中的安排,本期内容为抓取QQ空间的好友信息并做可视化分析。

不过图省事,我只抓取了我关心和关心我的好友信息。

那就让我们愉快地开始吧~~~

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/1_4Gmoc06wAWOsRSyMbPuvw 

密码: fy5n

开发工具

Python版本:3.6.4

相关模块:requests模块;selenium模块;lxml模块;pyecharts模块;以及一些Python自带的模块。

环境搭建

同Python爬取QQ空间信息(上)。

pyecharts模块安装参见:

Python简单分析微信好友。

原理简介

T_T

空间都登录了,剩下的就是分析数据包,找到需要的接口来获取需要的数据并分析呗。。。

PS:

公众号提供的脚本只能抓取你有权限访问的数据。换句话说,就是你能看到的合法数据。

所有脚本仅供学习交流。

其他你们想的很美的要求,想想就行了T_T

具体实现过程详见相关文件中的源代码。

使用方式

在cmd窗口运行QQ_Spider.py
文件即可。

结果展示

借了一个玉树临风、面如冠玉、仪表不凡的小哥的QQ号做的分析QAQ。

qq好友男女比例:


Python3爬取QQ空间信息(下)

qq好友年龄分布:

Python3爬取QQ空间信息(下)

qq好友位置分布:

Python3爬取QQ空间信息(下)

That's All.

更多

代码截止2018-06-03测试无误。

事实上,本文提供的脚本可抓取的好友信息并不是仅有结果展示中的那些:

Python3爬取QQ空间信息(下)

T_T我只是懒得一个个可视化了。。。

So,有兴趣的朋友可以自己去可视化好友的其他信息。嗯,就这样吧。

Python3爬取QQ空间信息(上)

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

翻了翻之前关于爬虫的文章。。。

似乎一直在欺负小网站,没什么挑战性。。。

那么,就来“试水”一波TX吧~~~

本着细水长流(偷懒)的原则T_T,这期文章我决定拆成两篇写。第一篇主要解决QQ空间的登录问题并尝试抓取一些信息,第二篇致力于抓取QQ空间的好友信息并做可视化分析。

让我们愉快地开始吧~~~

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/1D3C5cSp7YhuTooPJa7znjw 

密码: yccp

开发工具

Python版本:3.6.4

相关模块:

requests模块;

selenium模块;

lxml模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块,并前往:

http://npm.taobao.org/mirrors/chromedriver/

下载与自己使用的Chrome浏览器版本对应的驱动文件,下载完毕后将chromedriver.exe所在文件夹添加到环境变量中即可。

原理简介

本文主要解决QQ空间的登录问题。

其主要思路为:

利用selenium模拟登录QQ空间从而获取登录QQ空间所需的cookie值,这样就可以利用requests模块来抓取QQ空间的数据了。

为什么这么绕?

selenium好久不用,写起来太慢了。而且它本身速度和资源占用等问题一直为大家所诟病。

And 省略无数条理由。

一些细节:

(1)第一次获取cookie之后将其保存下来,下次再登录之前先试试保存的cookie有没有用,有用直接使用就可以了,这样可以进一步节省时间。

(2)抓包分析过程中,可以发现抓取QQ空间数据所需请求的链接都包含g_tk这个参数,这个参数实际上是使用cookie中的skey参数计算获得的,懒得打公式了,直接贴一小段代码吧:


Python3爬取QQ空间信息(上)

最后:

不抓点数据好像不能证明这篇文章真的有用?

好吧,那就把:

Python3爬取QQ空间信息(上)

扒下来吧~~~

具体实现过程详见相关文件中的源代码。

使用演示

QQ号(username)和密码(password):

在QQ_Spider.py
文件中填写,位置如下图所示:

Python3爬取QQ空间信息(上)

运行:

在cmd窗口运行QQ_Spider.py
文件即可。

结果:

Python3爬取QQ空间信息(上)Python3爬取QQ空间信息(上)

That's All.

下期预告

在本期基础上抓取好友的个人信息,并可视化分析抓取的结果。有兴趣的小伙伴可以提前试试~~~

事实上,微调本文所提供的代码,理论上是可以抓取QQ所有用户的信息的。当然,只是理论上,以及干很多有趣的事情。

T_T作为一个不搞事且不爱喝茶的boy,上述的理论我就不负责实现了。

Python3爬取网易云音乐评论

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

利用Python为自己喜欢的音乐制作专属词云。至于词的来源嘛,当然是对应歌曲的所有评论或者热门评论啦!!!毕竟网易云音乐最得意的大概就是那些刷了我朋友圈n多遍的评论了吧~~~

Python3爬取网易云音乐评论

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/16GpVk4EDq9hMYZeBoYZmFQ 

密码: dhm4

Python3爬取网易云音乐评论

主要思路

利用Python爬取网易云音乐中相应歌曲的所有评论,并利用这些评论制作歌曲的专属词云。

具体过程见相关文件中的源代码。

Python3爬取网易云音乐评论

开发工具

Python版本:3.5.4

相关模块:

requests模块、jieba模块、scipy模块、wordcloud模块、pycrypto模块、selenium模块以及一些Python自带的模块。

chromedriver_win32版本:2.3.4

chrome版本:65.0.3298.4

Python3爬取网易云音乐评论

环境搭建

(1)安装Python(添加到环境变量)并pip安装相关模块;

(2)安装chrome浏览器,并将相关文件中提供的chromedriver.exe文件放在python安装文件夹中的Scripts文件夹内。

PS:

(1)若chromedriver.exe文件放在其他文件夹,则需将对应文件夹路径添加到环境变量中!

(2)部分相关模块我在相关文件中提供了编译好的whl文件,使用pip+whl文件路径+whl文件名安装即可。

Python3爬取网易云音乐评论

使用方式

在cmd窗口运行并根据提示输入就可以啦~~~

Python3爬取网易云音乐评论

使用演示

利用歌曲热门评论制作词云:

Python3爬取网易云音乐评论

Python3爬取网易云音乐评论

利用歌曲所有评论制作词云:

Python3爬取网易云音乐评论

Python3爬取网易云音乐评论

更多

(1)因为是单进程,所以当评论较多时生成图云的速度会比较慢,因此请慎重选择用所有评论制作词云(昨天晚上多线程跑到一半被封了T_T);

(2)后续会有更多关于网易云音乐的内容,这算是初次试水吧,毕竟要从自己最喜欢的东西做起。

Python3爬取房价信息并分析

|本文转载至知乎ID:Charles(白露未晞)知乎个人专栏|
|下载W3Cschool手机App,0基础随时随地学编程>>戳此了解|

导语

进入正题,利用Python爬取房价信息并进行简单的数据分析。好久没发爬虫相关的内容了,想想还是抽空过来发一篇吧~~~

Ok,让我们开始吧~~~

相关文件

网盘下载链接: 

https://pan.baidu.com/s/1fDYFmz9JqN1wcDu_wSvpbw 

密码: 1f99

开发工具

Python版本:3.6.4

相关模块:openpyxl模块;requests模块;bs4模块;pyecharts模块;以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

pyecharts模块安装可参考:

Python简单分析微信好友

原理简介

需求:

根据输入的城市名获取该城市的房价信息;

对获得的数据进行简单的分析。

目标网站:

链家网(https://dl.lianjia.com/)

目标数据(图中圈出的):

Python3爬取房价信息并分析

实现思路

很基础的爬虫,不需要任何分析。直接请求需要的网页地址,然后利用bs4模块解析请求返回的数据并获取所需的信息即可。

然后再对这些信息进行简单的分析。

其中信息保存到Excel中,分析时读取即可。

具体实现细节详见相关文件中的源代码。

数据爬取演示

在cmd窗口运行Spider.py
文件后根据提示输入相关的信息即可。

视频演示如下:

数据分析

以北京为例:

北京房价(元/平方):

Python3爬取房价信息并分析

北京房价(万元/套起):

Python3爬取房价信息并分析

emmmm,算了,不分析了吧。

更多扎心的画图分析可参考:

Python抓取并分析天气数据

更多

代码截止2018-05-06测试无误。

Python3抓取并分析天气数据

|本文转载至知乎ID:Charles(白露未晞)知乎个人专栏|
|下载W3Cschool手机App,0基础随时随地学编程>>戳此了解|

导语

利用Python“简单地”抓取并分析一下天气数据。

T_T翻了翻公众号之前文章。。。

很少有把重点放在数据可视化分析上。。。

所以算是填补一下之前的空白吧~~~

Let's Go!

相关文件

文件下载链接: 

https://pan.baidu.com/s/1dxoxhdu3sqAcNDUKFub0Xg 

密码: jc52

开发工具

Python版本:3.6.4

相关模块:PIL模块;requests模块;pyecharts模块;以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

额外说明:

pyecharts模块安装时请依次执行以下命令:

pip install 

echarts-countries-pypkg

pip install 

echarts-china-provinces-pypkg

pip install 

echarts-china-cities-pypkg

pip install 

pyecharts

若安装过程中出现:

'utf-8'codec can't decode byte 0xb6

或者类似的编码错误提示。

可尝试修改Python安装文件夹下如下图所示路径下的__init__.py
文件的第75行代码:

Python3抓取并分析天气数据

修改为下图所示内容:

Python3抓取并分析天气数据

主要思路

利用国家气象局和百度天气查询API接口来获取当前天气数据,主要包括温度、湿度、气压等。

获取相关数据之后利用pyecharts模块和PIL模块对数据进行可视化分析。

具体实现过程详见源代码。

结果展示

使用:

在cmd窗口中运行analysis.py
文件即可。

要画什么图把对应的函数调用注释去掉就好啦:

Python3抓取并分析天气数据

结果:

(打开相关文件中的html文件查看效果更佳,到处点一点有惊喜~~~)

(1)全国部分城市空气质量

Python3抓取并分析天气数据

(2)天气预报简图

Python3抓取并分析天气数据

(3)部分城市气温柱状图

Python3抓取并分析天气数据

(4)部分城市气温折线图

Python3抓取并分析天气数据

(5)部分城市相对气压饼图

Python3抓取并分析天气数据

(6)部分城市气温分布图

Python3抓取并分析天气数据

(7)北京城市湿度

Python3抓取并分析天气数据

(8)南京天气信息雷达图

Python3抓取并分析天气数据

有些是为了画图而画图了,所以看起来逻辑很怪T_T

更多

代码截止2018-04-08测试无误。

Echarts作为百度开源的一个数据可视化 JS 库,功能还是十分强大的,有兴趣的朋友可以尝试去绘制一些其他有趣的图表。

Python3抓取猫眼电影数据

|本文转载至知乎ID:Charles(白露未晞)知乎个人专栏|
|下载W3Cschool手机App,0基础随时随地学编程>>戳此了解|

导语

T_T 愚人节似乎不宜出门?

那就爬波猫眼电影看看有什么值得看的电影?

于是T_T

大概是没什么技术含量的~~~

Let's Go!!!

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/1WJ8PL5nydttXjteQOWqRrg 

密码: v78a

开发工具

Python版本:3.6.4

相关模块:openpyxl模块;requests模块;win_unicode_console模块;bs4模块;以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

主要思路

目的:

爬取http://maoyan.com/films中的电影信息:

Python3抓取猫眼电影数据

其中要爬取的内容为:

电影名、电影评分、电影介绍页链接以及电影简介。

思路:

先爬取电影名、电影评分和电影介绍页链接,再根据电影介绍页链接爬取电影简介。

这么算下来,一页30部电影,需要31个requests。

结果只是为了爬这么点数据,效率可想而知T_T

最后把爬到的数据存入Excel中。

具体实现方式详见相关文件中的源代码。

补充说明

(1)cookies.py
文件中的cookie获取方式

Python3抓取猫眼电影数据

按上图所示方式获得cookie值后填入cookies.py
文件的相关位置中:

Python3抓取猫眼电影数据

第一个Cookies列表是不含登录信息的cookie;

第二个login_Cookies列表是含登录信息的cookie。

含登录信息的cookie获取方式和不含登录信息的cookie获取方式相同,但是需要事先在网页上登录(登录选项在网页的右上角)。

(2)关于猫眼的反爬虫

猫眼电影的反爬虫机制十分到位。T_T

首先是对于非登录用户,你只能查看前100页的电影信息。其次,如果你的请求过于频繁,是会被封的:

Python3抓取猫眼电影数据

经过测试,得到的结论如下:

设置随机的时间间隔并不有效防止ip被封;

更换cookie值无法防止ip被封;

爬取20页左右的电影数据后代码就GG了等等。

没有仔细研究猫眼电影是如何识别爬虫的。

但是可以感觉出其识别机制很智能。

比如我被封之后想尝试通过更换ip解决,但是我发现更换ip地址之后可以获取的数据量竟然比前一个ip少了很多。

因此,本人提供的正版源代码没有想过和猫眼的维护人员斗智斗勇,只是加了个随机的时间间隔。可以爬取的数据量在25页左右。选个电影而已,不想搞这么复杂。斗智斗勇的结果可能就是验证码输入越来越麻烦,给网站带来不必要的压力,影响正常用户的使用体验等等。弊大于利。

反爬虫解决方案

为了不让爬虫爱好者失望,还是稍微提一下吧~~~

网上关于反爬虫机制的解决方案很多,比如使用代理池之类的等等。

本人只是针对猫眼电影信息爬取过程中存在的反爬虫机制提出一项解决方案。

方案很简单,它不就是想让我们输入验证码来证明我们是人嘛~~~那就证明给它看咯。

简单测试后可以发现:

只要把识别之后的验证码和一些其他参数以post的方式请求:

http://maoyan.com/films?__oceanus_captcha=1

这个链接就可以解除ip封锁~~~

很简单。

我在相关文件中提供了一个测试版本(test.py
)。

至于验证码获取的接口以及验证码如何自动识别,我就不一一介绍了,测试版本里也没有(源代码里获取验证码的接口只是临时接口,所以不是一个普适的版本)。。。

感兴趣的同学可以自己研究一下~~~

挺简单的,方案也很多T_T,但是为了避免别人滥用我就不公布最终的验证码破解版本了。

使用演示

在cmd窗口中运行MY_Spider.py
文件即可。

如下图所示(爬取20页数据):

Python3抓取猫眼电影数据Python3抓取猫眼电影数据

其中9分以上的电影有:

摔跤吧!爸爸  

 

战狼2  

 

小萝莉的猴神大叔  

 

厉害了,我的国  

 

寻梦环游记  

 

霸王别姬  

 

速度与激情7  

 

红海行动  

 

神秘巨星  

 

疯狂动物城  

 

冰雪奇缘  

 

泰坦尼克号  

 

看不见的客人  

 

泰坦尼克号3D  

 

速度与激情8  

 

奇迹男孩  

 

缝纫机乐队  

 

夏洛特烦恼  

 

战狼  

 

湄公河行动  

 

蝙蝠侠:黑暗骑士  

 

九品芝麻官  

 

头号玩家  

 

唐人街探案2  

 

前任3:再见前任  

 

帕丁顿熊2  

 

公牛历险记  

 

辛德勒的名单  

 

一个人的课堂  

 

智取威虎山  

 

你的名字。  

 

英雄本色  

 

二十二  

 

美国队长2  

 

刀剑神域:序列之争  

 

银河护卫队  

 

变形金刚4:绝迹重生  

 

我的少女时代  

 

春光乍泄  

 

闪光少女  

 

熊出没·变形记  

 

羞羞的铁拳  

 

芳华  

 

捉妖记  

 

建军大业  

 

侏罗纪世界  

 

熊出没·奇幻空间  

 

寻龙诀  

 

末日崩塌  

 

老炮儿  

 

熊出没之熊心归来  

 

比得兔  

 

恋爱回旋  

 

南极之恋  

 

追龙  

 

银河护卫队2  

 

滚蛋吧!肿瘤君  

 

美人鱼  

 

唐人街探案  

 

阿凡达  

 

拆弹·专家  

 

魔兽  

 

钢铁侠3  

 

蓝精灵:寻找神秘村  

 

至爱梵高·星空之谜  

 

爱在记忆消逝前  

 

碟中谍5:神秘国度  

 

傲娇与偏见  

 

That'all~~~

看电影去了~~~

更多

代码截止2018-04-01测试无误。

若日后猫眼电影有较大更新,源代码将仅供参考。

Python3爬取美团美食板块商家数据

|本文转载至知乎ID:Charles(白露未晞)知乎个人专栏|
|下载W3Cschool手机App,0基础随时随地学编程>>戳此了解|

导语

利用Python简单爬取美团美食板块商家数据。。。

其实一开始我是想把美团的所有商家信息爬下来的,这样就可以美其名曰百万数据了。。。

然而相信很多爬过美团的朋友都发现了。。。

如果不进行一些小操作。。。

爬不了几页代码就GG了。。。

后来想想我要这么多数据也没什么用。。。

唯一对我有用的。。。

大概就是美食板块了。。。

以后用到其他板块的时候再另外爬就好了。。。

OK,Let's go!

相关文件

百度网盘下载链接: https://pan.baidu.com/s/19FPe8OFVwVa_LvuHjYnB9w 

密码: 3pbr

主要思路

目的:

根据输入的城市名,爬取该城市美团美食板块所有商家的数据。数据包括:

店名、评分、评论数量、均价、地址,

并将这些数据存入Excel中。

最后尝试对爬取到的数据做一个简单的分析。

克服反爬虫:

爬取每页数据后,随机停止一段时间后再爬下一页;

每页使用不同的cookie值。

具体原理:

没用抓包软件。。。

Chrome打开后看了下xhr。。。

发现直接有接口可以用。。。

给个cookie就能返回所需的数据了。。。

后来随便点了几个其他板块的网页。。。

发现也差不多是这个套路。。。

详细的实现过程见源代码。

开发工具

Python版本:3.5.4

相关模块:requests模块;win_unicode_console模块;openpyxl模块;以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

使用演示

在cmd窗口运行MT_Cate_Spider.py
文件即可。

Python3爬取美团美食板块商家数据Python3爬取美团美食板块商家数据

简单分析

其实在码字的时候我临时加的这个部分。。。

原因很简单。。。

我想强调爬虫和数据分析结合的重要性。。。

数据不多,懒得写代码分析了。。。

利用Excel的数据分析功能简单分析一波吧~~~

用的上海地区的数据。

首先当然是按照评分排个序,然后做成柱状图:

Python3爬取美团美食板块商家数据

然后是评论数量排个序,做成柱状图:

Python3爬取美团美食板块商家数据

然后再做点其他有趣的图案:

Python3爬取美团美食板块商家数据

Python3爬取美团美食板块商家数据

OK,That's all!

更多

如果有需要,我会写一个爬取美团所有商家信息的脚本,因为就如之前所说。。。

貌似都有直接可以用的接口。。。

所以还算比较简单。。。

只要弄到足够多的cookie值就好了。。。

当然这个Flag应该是要到我实在没东西写或者懒得重新踩点的时候才会去实现了吧。。。

就这样吧~~~

有兴趣的朋友可以试着去抓其他板块的数据。。。

貌似挺easy的。。。

小心别被封了就好了。。。

代码截止2018-02-25测试无误。

Python3爬取QQ空间信息(下)

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

内容回顾:

Python爬取QQ空间信息(上)

按照(上)中的安排,本期内容为抓取QQ空间的好友信息并做可视化分析。

不过图省事,我只抓取了我关心和关心我的好友信息。

那就让我们愉快地开始吧~~~

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/1_4Gmoc06wAWOsRSyMbPuvw 

密码: fy5n

开发工具

Python版本:3.6.4

相关模块:requests模块;selenium模块;lxml模块;pyecharts模块;以及一些Python自带的模块。

环境搭建

同Python爬取QQ空间信息(上)。

pyecharts模块安装参见:

Python简单分析微信好友。

原理简介

T_T

空间都登录了,剩下的就是分析数据包,找到需要的接口来获取需要的数据并分析呗。。。

PS:

公众号提供的脚本只能抓取你有权限访问的数据。换句话说,就是你能看到的合法数据。

所有脚本仅供学习交流。

其他你们想的很美的要求,想想就行了T_T

具体实现过程详见相关文件中的源代码。

使用方式

在cmd窗口运行QQ_Spider.py
文件即可。

结果展示

借了一个玉树临风、面如冠玉、仪表不凡的小哥的QQ号做的分析QAQ。

qq好友男女比例:


Python3爬取QQ空间信息(下)

qq好友年龄分布:

Python3爬取QQ空间信息(下)

qq好友位置分布:

Python3爬取QQ空间信息(下)

That's All.

更多

代码截止2018-06-03测试无误。

事实上,本文提供的脚本可抓取的好友信息并不是仅有结果展示中的那些:

Python3爬取QQ空间信息(下)

T_T我只是懒得一个个可视化了。。。

So,有兴趣的朋友可以自己去可视化好友的其他信息。嗯,就这样吧。

Python3爬取QQ空间信息(上)

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

翻了翻之前关于爬虫的文章。。。

似乎一直在欺负小网站,没什么挑战性。。。

那么,就来“试水”一波TX吧~~~

本着细水长流(偷懒)的原则T_T,这期文章我决定拆成两篇写。第一篇主要解决QQ空间的登录问题并尝试抓取一些信息,第二篇致力于抓取QQ空间的好友信息并做可视化分析。

让我们愉快地开始吧~~~

相关文件

百度网盘下载链接: 

https://pan.baidu.com/s/1D3C5cSp7YhuTooPJa7znjw 

密码: yccp

开发工具

Python版本:3.6.4

相关模块:

requests模块;

selenium模块;

lxml模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块,并前往:

http://npm.taobao.org/mirrors/chromedriver/

下载与自己使用的Chrome浏览器版本对应的驱动文件,下载完毕后将chromedriver.exe所在文件夹添加到环境变量中即可。

原理简介

本文主要解决QQ空间的登录问题。

其主要思路为:

利用selenium模拟登录QQ空间从而获取登录QQ空间所需的cookie值,这样就可以利用requests模块来抓取QQ空间的数据了。

为什么这么绕?

selenium好久不用,写起来太慢了。而且它本身速度和资源占用等问题一直为大家所诟病。

And 省略无数条理由。

一些细节:

(1)第一次获取cookie之后将其保存下来,下次再登录之前先试试保存的cookie有没有用,有用直接使用就可以了,这样可以进一步节省时间。

(2)抓包分析过程中,可以发现抓取QQ空间数据所需请求的链接都包含g_tk这个参数,这个参数实际上是使用cookie中的skey参数计算获得的,懒得打公式了,直接贴一小段代码吧:


Python3爬取QQ空间信息(上)

最后:

不抓点数据好像不能证明这篇文章真的有用?

好吧,那就把:

Python3爬取QQ空间信息(上)

扒下来吧~~~

具体实现过程详见相关文件中的源代码。

使用演示

QQ号(username)和密码(password):

在QQ_Spider.py
文件中填写,位置如下图所示:

Python3爬取QQ空间信息(上)

运行:

在cmd窗口运行QQ_Spider.py
文件即可。

结果:

Python3爬取QQ空间信息(上)Python3爬取QQ空间信息(上)

That's All.

下期预告

在本期基础上抓取好友的个人信息,并可视化分析抓取的结果。有兴趣的小伙伴可以提前试试~~~

事实上,微调本文所提供的代码,理论上是可以抓取QQ所有用户的信息的。当然,只是理论上,以及干很多有趣的事情。

T_T作为一个不搞事且不爱喝茶的boy,上述的理论我就不负责实现了。

Python3爬虫获取豆瓣读书数据

|

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

|
|

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

|

导语

利用Python爬取豆瓣读书的一些数据,并对这些数据做一定的分析。

标题可能改成类似“大数据时代如何科学有效地阅读”这样的题目更加引入瞩目吧,hhhhh。

——>

对过程不感兴趣的同学可以直接下拉到最后看结果~~~

相关文件

百度网盘下载链接: https://pan.baidu.com/s/1RN_Hn1AEW0dGWQhFKPKH9Q 

密码: fq46

主要思路

利用Python的requests模块和beautifulsoup模块来爬取豆瓣读书的数据,并对这些数据做一定的分析。

爬取的数据包括:

豆瓣图书各个分类中所有书籍的'书名', '作者/译者', '出版信息', '星级', '评分', '评价人数', '简介', '相应的豆瓣链接'。

例如:


Python3爬虫获取豆瓣读书数据

同时,通过爬取的豆瓣链接对具体书籍的质量做一定的分析,分析包括

制作热评词云、对热评进行简单的情感分析。

有需要者可自行修改源代码进行更多的数据分析

说明

(1)因为豆瓣严格限制爬虫,且实际使用时也没有必要爬取所有分类的图书资料,给豆瓣服务器带来不必要的压力,因此我给出的源代码一次仅能爬取一个小类的图书资料,且为单进程。

(2)在相关文件中,本人已经提供了爬取到的上百个分类的几万本图书数据,供有需要者参考。

PS:

建筑、漫画、日本漫画、耽美这四个小类的数据写入excel时抛出异常,因此暂时无法提供数据。

开发工具

Python版本:3.5.4

相关模块

requests模块、jieba模块、BeautifulSoup模块、openpyxl模块、matplotlib模块、wordcloud模块、snownlp模块以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

前期准备

以chrome浏览器为例。


Python3爬虫获取豆瓣读书数据


Python3爬虫获取豆瓣读书数据

使用演示1

演示内容:

爬取某个小类所有相关书籍基本信息。

截图如下:


Python3爬虫获取豆瓣读书数据

按照提示进行输入,输入完成后按下回车键即可。

最后结果将保存在results文件夹中:


Python3爬虫获取豆瓣读书数据

结果展示1

分析内容为

挑选其中几类利用excel的统计功能对获得的数据进行简单的分析。

以名著类为例:

评分分布图:


Python3爬虫获取豆瓣读书数据

评分Top10:

世界童话名著连环画

坂田荣男围棋全集(共12册)

世界文学名著连环画 欧美部分(全十册)

三国演义

细说红楼梦 1-80回

世界文学名著连环画(亚非部分全五册)

算术探索 

三国演义(绘画本1-5) 

四大名著(套装全4册)

红楼梦

热度(评论人数)Top10:

围城

不能承受的生命之轻

红楼梦

百年孤独

简爱

傲慢与偏见

月亮和六便士

边城

霍乱时期的爱情

更多内容请自行下载相关文件中提供的数据根据个人喜好进行分析选择。

使用演示2

演示内容为:

对具体书籍制作豆瓣热评词云并对豆瓣热评进行简单的情感分析。

截图如下:


Python3爬虫获取豆瓣读书数据

链接地址都保存到了excel表中,复制粘贴即可。

如下图所示:


Python3爬虫获取豆瓣读书数据

结果展示2

分析内容为

爬取豆瓣读书中具体一本书的前20页短评,并制作成词云,同时对这些短评进行简单的情感分析。

以《统计学习方法》为例:

词云:


Python3爬虫获取豆瓣读书数据


Python3爬虫获取豆瓣读书数据

情感分析:


Python3爬虫获取豆瓣读书数据


Python3爬虫获取豆瓣读书数据

数值较大说明情感偏积极,否则情感偏消极。

更多

本人不是专业做数据分析的~~~

所以分析的有些稚嫩~~~

欢迎专业人士指导补充~~~