呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

[顶] 大数据报告:知乎百万用户分析

最近用 python 爬虫抓取了知乎用户个人信息(公开信息),去重之后有300+万用户信息(公开信息),为了得到这些数据,还不小心跑崩了一台服务器…… 当然主要是配置太低。

手头有了数据也不能闲着,于是就有了这篇分析报告,这篇报告做了一些浅显的数据分析,主要目的是练练手,大家看个热闹,高手勿笑。

数据量:3,289,329 人。

数据采集工具:分布式 python 爬虫

分析工具:ElasticSearch + Kibana

分析角度包括:地理位置、男女比例、各类排名、所在高校、活跃程度等。

By

ISSO 评论系统部署攻略

自从多说关闭服务,这一年多来一直没找到合适的评论系统,之前多说关闭前保存的历史评论数据都快凉透了,于是干脆自己搭建评论系统,好在找到一个还不错的开源评论系统——ISSO。

下面是部署 ISSO 的过程。

By

如何写一个简单的分布式知乎爬虫?

很早就有采集知乎用户数据的想法,要实现这个想法,需要写一个网络爬虫(Web Spider)。因为在学习 python,正好 python 写爬虫也是极好的选择,所以写了一个基于 python 的网络爬虫。

几个月前写了爬虫的初版,后来因为一些原因,暂时搁置了下来。最近重新拾起这个想法,首先优化了代码的结构,然后在学弟的提醒下,从多线程改成了多进程,一台机器上运行一个爬虫程序,会启动几百个子进程加速抓取。

但是一台机器的性能是有极限的,所以后来我使用 mongodb 和 redis 搭建了一个主从结构的分布式爬取系统,来进一步加快抓取的速度。

然后我就去好几个服务器厂商申请免费的试用,比如百度云、腾讯云、Ucloud…… 加上自己的笔记本,断断续续抓取了一个多周,才采集到300万知乎用户数据。中间还跑坏了运行网站的云主机,还好 自动备份 起作用了,数据没有丢失,但那又是另外一个故事了……

废话不多说,下面我介绍一下如何写一个简单的分布式知乎爬虫。

By

关于 ElasticSearch 中倒排索引的理解

ElasticSearch 是一个搜索引擎,也可以看做是一个分布式的数据库(经常被当做一个文档型的NoSQL数据库在使用),它可以大量的存储数据,并建立索引,以便在极短时间从海量数据中找到目标数据。

它和传统数据库很大的一个区别在于它建立索引的能力,这里有一个重要的概念——倒排索引

倒排索引可以很大的提高检索的速度,下面举一个例子,来说明一下倒排索引是什么,以及这种方式相比于传统数据库为什么会提高索引的速度。

By

基于Django、WeRoBot的微信公众平台开发(二) - 后续

这里是 基于Django、WeRoBot的微信公众平台开发(二) 的后续,主要记录其它功能的开发。

By

Navicat远程连接阿里云上的mysql

因为用ssh远程连接服务器实在命令行下操作的,查看mysql数据库不太直观,于是查找在本地远程登录mysql的方法。

网上教程很多,在这里记录设置的步骤,以及一个小坑。

By

记录安装 mysql5.7 过程中遇到的两个坑

最近在windows下安装了一下 mysql5.7解压版(64位),因为官方更新了不少东西,所以和5.6的安装过程大有区别。因为这些不知道的坑,折腾了一个晚上,在这里记录一下。

下载的mysql5.7解压版(64位)就是这货:

注意:安装环境为windows

安装的过程中主要遇到两个坑(和之前的版本安装不同的地方):

  • 启动mysql服务之前需要手动初始化data目录(第5步
  • root 用户登陆初始密码为一个随机密码,而不是空密码(第7步

下面在安装过程中介绍这两个坑。

By

博客园文章迁移脚本(xml.sax+mysqldb)

写博客系统的后期需要把之前的文章导入过来,我之前的文章都在博客园上,但是博客园只提供博文导入到有限的第三方博客系统中,这里面肯定不包括我自己写的博客系统,所以我需要自己写一个文章迁移程序。

好在博客园提供博文备份功能,导出的备份文件是 xml格式

所以文章迁移程序要完成两个步骤:

  1. 解析xml文件
  2. 执行sql导入文章