Skip to content

maicss/pa-zhihu

Repository files navigation

pa-zhihu

环境

  • python 3.3以上
  • gevent(现在不需要了)
  • lxml
  • requests
  • pymysql(现在不需要了)
  • pymongo
  • 登陆界面,是模仿的7sdream的zhihu-py3

20160909更新

只能使用邮箱帐号登录

折腾了好久, 之前的就不说了吧。

这个项目本来是实验多协程的,但是知乎一直给429,一次也就能跑三个协程,后来还是算了,但是一个慢慢跑吧,也就不给服务器平添压力了。反正我也不在乎时间。

运行程序是进入到pzhihu文件夹, 然后python3 single2.py

之所以会起1,2,3类的名字是想记录版本,大家见谅...

更新

  • 2016-09-11(下午)直接还有这样的【该用户暂时被反作弊限制,0秒后跳转到知乎首页】,关键是页面上只有一个这玩意,又跪了。真的给知乎跪了
  • 2016-09-11(晚上)如果连续三分钟没有存储任何人物信息,就中断爬虫,并发送邮件提醒[这个还没做](一个账号被封的经验总结)
  • 2016-09-25 lxml在解析这个页面 的时候一直etree.XMLSyntaxError: switching encoding: encoder error, 现在不知道怎么解决, 还是用回了BeautifulSoup, 累~~
  • 2016-09-25 (晚上) 打包成package我要开始装逼了, 还未完工
  • 添加当前文件夹和路径到log file前面
  • mongodb真心累,一直挂,真无语了。而且mongodb还不支持ARM,树莓派上的是32位的,最大只支持2G的文件还有,为啥db文件夹里的文件是同名后面加123等命名的,而且大小也是16-32-64,这么有规律,嘛意思
  • beautifulsoup真心慢,还是再研究研究lxml为啥编码报错好了~~
  • 2016-10-2 添加了为被捕捉错误的Exception的trackback输出
  • 2016-10-6 lxml解析搞定了,还是换回了lxml;优化了部分解析逻辑;效率大概算了一下,只有每分钟15个人(用多协程的时候,大概是每秒0.5个,约是现在的两倍),效率好低~~计算效率也打算从原来的多协程时候的每秒变成每分钟。
  • 2016-10-10 lxml测试在有的地方还是失败了,暂时还不知道为啥是因为一个用户的签名是个emoji,而这个字符集不在utf-8里面,再试试看能找到解决方法不。另外一点修改了页面解析和数据库存储的逻辑,效率由原来的秒为单位变成了分钟为单位。
  • 2016-10-11 屏蔽了知乎的自有账号和机构账号(周源说了,知乎一共有三类账号),更改了滤重的机制。**另外: **程序还是会在有时候莫名其妙的不走了,也没报错(我catch了所有的错误)。看能不能实现监视脚本卡住了然后重启脚本的功能。
  • 2016-10-23 现在是周六的03:47发现一个用户一直挂,找了N久才发现是判断的关键字很用户名有重合,跪

最后

  • 以200万用户为界限开始做以下的事情。
  • 把所有机构账号全部删掉
  • 把关注者列表为空的删掉(这里包括了赞同为0的),或者单独拿出来再跑一次,因为之前有次改错,好多人的关注都是空。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages