呓语 | 杨英明的个人博客

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

By

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

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

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

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

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

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

By

[顶] Python 学习拾遗

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

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

By

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

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

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

By

python 实现校园网自动登录

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

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

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

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

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

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

上一节,我在一个Django项目中集成了 基于WeRoBot的微信公众号后台,成功与服务器完成了对接,并且可以对用户的任意消息做出响应(回复一个“hello”),简单来说,就是搭建起了一个开发框架。

这一节中,我将继续用 WeRoBot 在这个开发框架上扩展一些功能,让公众号的交互丰富起来,思来想去,我挑了三个相对简单的功能进行实现:简单的聊天功能,天气查询,讲笑话

下面是实现这三个功能的过程和心得记录,分享给大家。

By

基于Django、WeRoBot的微信公众平台开发(一)

* 该教程基于第三方微信公众号开发框架 WeRoBot
* 该教程在已有Django项目上开发,即在已有网站项目中嵌入一个微信公众平台服务
* 你需要有一个VPS/云服务器

今天突发奇想,打算申请一个微信公众账号玩玩,以便同步博客上的一些文章。

由于在学python,于是打算用Python来开发微信公众号的后台。

为了方便开发,我在github上寻找微信公众号开发的框架,最后锁定了 WeRoBot

下面我将用WeRoBot在一个Django网站项目中开发微信公众号的后台。

废话不多说了,我们开始吧!

By

【IJCAI-17 口碑商家客流量预测】使用Pandas计算商家平均客流量

这段时间参加了天池的 IJCAI-17 口碑商家客流量预测 大数据竞赛,初次参加此类竞赛,也是第一次使用pandas,折腾了许久,记录下自己的心得。代码很粗糙,仅作个人记录用。参考价值不大,大神勿喷。

下面出现的代码已经提交检验通过,第一次提交混上了排行榜,400+左右的位置,第二次修改了一下混到了200+的位置,真是没有想到这么水的算法也能上排行榜……

By

Pandas读取csv表格数据 && 存入数据库

作为一只萌新报名参加了阿里的天池大数据比赛,参加的这场比赛的题目是 预测商家未来14天的客流量 。由于第一次做ML/DM方面的比赛,所以上手需要学习不少新知识,比如读取数据这方面。

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,经常用于数据分析和科学计算领域。

不管参加天池大数据比赛或者是Kaggle,首先要做得都是从比赛提供的数据文件中将数据提取出来,即 提取数据

为了更好的提取数据我不可避免的用到了Pandas,在这里我把用pandas提取csv表格数据的心得记录下来。

By

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

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

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

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

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

By

黑板客爬虫闯关 代码

黑板客爬虫闯关 代码

By

新浪云SAE搭建python环境 问题拾遗

新浪云SAE搭建python环境 问题拾遗

By

关于python中的字符串编码理解

关于python中的字符串编码理解

By

python中list作为全局变量无需global声明的原因

python中list作为全局变量无需global声明的原因

By

批量下载小说网站上的小说(python爬虫)

批量下载小说网站上的小说(python爬虫)

By

关于python中的字符串编码理解

python2.x 中中间编码为unicode,一个字符串需要decode为unicode,再enc

By

使用pyInstaller发布PathMerge的exe版本(py转换成exe)

使用pyInstaller发布PathMerge的exe版本(py转换成exe)

By

python开发目录合并小工具 PathMerge

python开发目录合并小工具 PathMerge

By

python计算文件的md5值

python计算文件的md5值

By

python+selenium 简单尝试

python+selenium 简单尝试