python进行网络爬虫_[原]用Python进行网络爬虫和数据分析的初次尝试(一)

某天突然起了兴致,想知道国内每个成员有多少粉,但不知道应该怎么做。各个应援会论坛的用户数多粉也去其它成岩的应援论坛,不靠谱。各个贴吧会员数只能说明某个成员是否出名,并且也有和应援论坛相同的弊端。最好的方法是在一个中立(无成员倾向的)论坛进行统计。于是我想起了AKB48中国官方俱乐部的论坛满足了要求,并且个人信息中自带推し成员的统计。

基本过程

用python脚本抓会员信息的网页,提取网页中的用户信息,包括一推二推成员等,将这些数据保存为文件。

通过用户信息剔除广告用户和不经常登陆的用户。

然后使用pandas库进行统计分析,输出数据,并使用matplotlib绘制图表。

本项目的代码文件可以看 Gist

,也可以下载 这个压缩包

。压缩包中包含了抓取到的数据内容(Gist中不包含),直接运行analyze.py可以获得本文中用到的数据和图片。

剔除用户数据的方法

通过对用户的 1. 注册时间与最后登录时间之差(a) 2.积分(b) 3.论坛通货 AK币(c) 三个方面对用户进行评分,剔除掉评分少于2的用户数据。

注册时间与最后登录时间之差大于7天,记 a = 1,否则记 a = 0

积分: b = log(积分 + 1) * 0.5

通货: c = log(AK币 + 1) / 20 ) * 0.1

如果用户只有发帖没有回帖 认为是广告帐号 直接剔除

推し成员和粉丝性别的数据分析

在最终没有被剔除的12772条用户数据中,性别填写为男性的有2881条,女性的有1181条。取这4062条数据中填写了一推或二推的数据,分别统计每个成员的一推二推男女粉丝数量,以总粉丝数量降序取前20名。最终绘制如下两幅图。

http___img1.tuicool.com_j2Mzyu.jpg

图2 推し成员关于性别的条形图

此外,为了判断出最男生、女生受欢迎的成员,使用如下方法计算成员的性别得分:

1. 先计算全部用户性别比例 R

R = 男用户数/女用户数

2. 分别计算各个成员的等效男女粉丝数。

等效男粉丝数 = 一推男性数 + 二推男性数 * 0.5   记为 f

等效女粉丝数 = 一推女性数 + 二推女性数 * 0.5   记为 m

3. 计算各个成员的等效粉丝性别比例。

r = f / m

4. 计算性别得分。

s = r / R

如果 s < 1 性别得分 = – (1 / s – 1)  否则 性别得分 =  s – 1

这样得出的性别得分既消除了成员总粉丝数的影响,又消除了本身用户数据中男女数量不同的影响,并且函数上是一个对称的。

得出的结果:

男生更加喜欢的成员 佐藤亜美菜、 横山由依、 指原莉乃、柏木由紀、河西智美

女生更加喜欢的成员 宮澤佐江、高橋みなみ、松井珠理奈、大島優子、小嶋陽菜、前田敦子

推し成员和粉丝年龄的数据分析

在最终没有被剔除的12772条用户数据中,填写了生日的有3534条。将用户年龄分为 ~18 19~22 22~26 26~ 四段,其分布如下:

~18     532 人

19~22    1322 人

22~26    1187 人

26~       493 人

http___img0.tuicool.com_zYRZzu.jpg

图4 推し成员关于年龄的条形图

经验总结

最好还是将抓下来的网页保存为文件,这样抓完之后即使有什么想要的其他信息可以直接从文件中提取。

有可能会因为网络问题导致网页无法抓取,因此最好要有重试逻辑。

剔除用户的时候,很靠谱的一个方法是使用用户组。但是这次因为抓数据的时候没有抓这个字段,就比较坑了。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树网络爬虫urllib208564 人正在系统学习中 相关资源:丝柏人像美肤处理软件CPAC Imaging Pro 3绿化汉化破解版

来源:weijie.tong

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月9日
下一篇 2021年1月9日

相关推荐