呓语 | 杨英明的个人博客

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

By

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

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

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

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

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

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

By

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

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

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

数据量:3,289,329 人。

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

分析工具:ElasticSearch + Kibana

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

By

[顶] Python 学习拾遗

该博文主要适应于python2.7,并没有对py3进行测试。

主要记录学习python过程中容易出现的一些小问题、小错误,相信能给你启发。

By

购买搬瓦工 VPS 在 ubuntu 16.04 x64 中配置 ShadowSocks 服务器科学上网(翻墙)

科学上网~

By

如何配置 Sublime Text 3 的 Python 编程环境

用 IDLE 写 python 习惯了,还是发现它有些简陋,于是准备转向 Sublime 的怀抱。(我比较喜欢轻量级的 IDE)

为了方便用 Sublime 写 python 代码,我搜集了网上的一些资料,选出了常用 Python 编程的3个插件,整理出一篇轻量级的配置教程。

By

2017 年 7 月份阅读记录

这个月比较忙,没有正儿八经坐下来读几本书,倒是赶巧追完了几本网文。 _(:зゝ∠)_

By

第一届 Bilibili World 参加体验!

最初知道 Bilibili World(以下简称BW) 是看到 B 站 up 主 LexBurner 发布的一段 BW 的 宣传视频,看完发现坐标竟然就在上海!

拔剑神曲(βίος)的原唱 小林未郁 会去,血洗B站的《极乐净土》舞团 GARNiDELiA 会去,小埋的声优会去,还有我关注的很多 up 主:中国 boy、允星河、神奇陆夫人、黑桐谷歌、祈Inory、Apple君、王自如…… 作为一个关注B站时间也不短的用户,看到这么多平时只在手机屏幕前看的面孔都会来参加,当然不会错过这个机会!

By

记录一次服务器重新部署的经历(网站、gogs和一些脚本)

前段时间由于手贱在服务器上跑爬虫,开了100个进程,内存和cpu双双达到极限值,第二天起来一看,性能曲线赛高,使用 putty 和网页版 ssh 登录服务器,被拒之门外。于是重启服务器,然后发现启动报错,找阿里云售后工程师,说部分关键文件丢失,这种情况无法正常启动,建议恢复快照…… 无奈,依次尝试恢复快照,结果发现只有一月份的快照是正常的…… 这意味着我没法把系统直接恢复到最近的正常状态,一些服务和程序需要我重新搭建一遍。

心情崩溃…… 好在网站有 自动备份,阿里云也可以 从快照创建磁盘 ,这说明数据没有丢失,不幸中的万幸,然后只要花时间把服务和程序重新搭建起来就可以恢复之前的状态了。

By

2017 年 6 月份阅读记录

By

windows 中永久修改环境变量的三种方法

有一个简单的需求:

写一个批处理,将当前目录追加到 path 环境变量最后,使其永久生效。

我找到如下了三个解决方案

By

win7 使用 mstsc 访问 win10 远程桌面

mstsc 是 windows 系统自带的远程桌面工具,有了它可以很方便连接内网甚至外网的主机。

近期在公司写代码的时候有一个特殊需求,因为台式机(win7)内存不足,使用 webstorm 太卡,于是打算利用一下放在我旁边暂时没人用的高配 win10 笔记本。用了几次,感觉笔记本屏幕太小,又因为只提供了 HDMI 接口,所以无法将笔记本直接连接到大屏显示器。

于是今天琢磨起远程桌面的主意,目的 是用台式机的 win7 系统连接笔记本的 win10 系统,这两台机器都连接到公司的 wifi。(尝试过 qq远程桌面,走的外网,延迟太高;teamviewer 由于我手贱,试用期已过,暂时没找到激活的方法)

废话不多说,介绍一下 win7 访问 win10 远程桌面的方法。

By

使用 gogs 搭建私人 git 服务器 | nginx 添加反向代理到二级域名

最近一直在云主机的 linux 系统上开发,久而久之也积累了一些代码,另外有些个人文件夹需要在不同电脑上增量编辑,比如在公司和实验室的电脑上共同维护自己的工作日志,于是迫切需要一个类似于 github 的网站统一管理这些代码和文件夹,而且又不想给别人看。

在这里给大家提供一个搭建个人 git 服务器的思路,我选择的是 gogs。

By

readfree.me 自动签到脚本获取免费积分

这又是一个 python 脚本,这次的目标是 readfree.me ,一个比较正规的 kindle 电子书资源站。这个网站做了限制,电子书需要积分才能下载,积分有两种获取方式:1.充会员 2.每天领免费积分。本着能免费就不掏腰包的革命原则,我自然而然的把目光瞄到了每天的免费积分上……

脚本目的:每天自动登录 readfree.me 进行签到 ---> 领取积分

By

python 实现校园网自动登录

我所在的学校校园网登录是web式的,即随便打开一个网页就会自动跳转到登录页面,然后输入用户名密码,点登录,便可以上网了。

但这种登录方式有个缺点:登录状态不会一直保持下去。即过一段时间就会掉线,然后你需要重新登陆才行。这个时间大概是一天。

这就蛋疼了,想让实验室的电脑随时保持联网状态怎么办呢?(有时候我需要远程我的电脑)

这个时候可以用python脚本解决这个问题!

By

关于 ElasticSearch 中倒排索引的理解

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

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

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

By

2017 年 5 月份阅读记录

读万卷书,行万里路。

By

2017.5.15 初来上海一周见闻

流量警告:多图杀猫!

从3月底考研复试结束之后,在家浪了有一个月左右的时间,期间回学校看了看,和老师、实验室的小伙伴一起吃了顿饭,气氛很愉快,回到母校很亲切。烟大的海,还有天,还是那么湛蓝。

5月7日,周日。启程去上海。正值C919大飞机试飞成功,我也坐个小飞机。

By

Pandas 默认时间格式转换为 Unix 时间戳

Pandas读取csv文件时,时间会自动显示为‘YYYY-MM-DD HH:MM:SS’的格式,那么如果想要将这个时间转换为 Unix时间戳 呢?

先科普一下,什么是 Unix时间戳 呢?

Unix时间戳 是一种时间表示方式,是一个整型值,代表从格林威治时间1970年01月01日00时00分00秒起至现在经过的总秒数。

举个栗子:

Unix时间戳 表示形式为 1492751843 这样的整型
把它转换为 北京时间为 2017/4/21 13:17:23

实际上,Pandas中时间用 pandas.datetime() 转换为 pandas.tslib.Timestamp(时间戳) 格式之后,已经变成了整型存储,即 Unix时间戳形式 。

如果我们需要这个时间戳的整型格式,可以用 time[0].value 这个属性把它提取出来。

By

《环界》(午夜凶铃)系列读书笔记

标签:科幻、悬疑、恐怖小说

前段时间集中看书,以一天一本的疯狂速度读完了《环界》系列,其实每一部字数都不算多,加上小说本身紧张的节奏和气氛使其看起来十分爽快,适合作为平静的生活之外的调味剂。

第一部有点恐怖哦,吓到你了可别怪我~

读完小记了一下感想~

By

2017 年 1~4 月份阅读记录

长篇的笔记另起炉灶,短篇的直接写在这里。

By

“一波三折”的考研调剂之路

注意:长文预警

现在是2017年4月4日,外面是初春蒙蒙的细雨,而我刚结束了一个多周的奔波,回到温暖的家中,在笔记本前记录下我颇具故事性的调剂之路。

在这段时间里,我见到了呼和浩特的三月飞雪,也体会到魔都现代而大气的大都市风貌,最后带着一路风尘回到亲切的家乡,青岛——这里有熟悉而牵挂的人。