豆瓣机器人 自动加入/退出小组、自动在小组发帖/删帖、自动回复 Python实现代码 豆瓣爬虫
2017-12-06 18:52
1361 查看
用Python实现了一个在豆瓣上 自动加入/退出小组、自动在小组发帖/删帖、自动回复 的小工具。
代码请见github:https://github.com/echoTheLiar/DoubanAuto
主要实现原理阐述如下:
1. 要在豆瓣上自动完成针对小组的操作,首先需要模拟浏览器登录,此处利用cookie携带登录信息,如利用上述代码,请在Chrome浏览器中右键检查,将获得的Cookie信息复制到代码文件 config/doubanCookies.txt 下替换原有内容即可
2. 自动加入小组:发帖的前提是加入小组。加入小组利用代码实现时,通过抓取相应的加入小组的链接,再利用get请求即可。我在示例代码中演示了如何加入活跃的小组,可以修改代码按自己意愿调用;此处活跃小组是之前爬取到的豆瓣上成员超过10000的小组id,如需下载,请见http://download.csdn.net/download/doleria/10143962 ,没有这个文件也不影响功能,注释掉相关代码行即可;
3. 自动发帖、回帖:手动在浏览器中进行发帖操作(前提:在已加入的小组里),然后利用抓包程序(如fiddler)查看这一过程中POST或GET的具体参数,此处不再赘述;需要注意的是,有个ck参数,会随着用户变化而变化,代码实现时在cookie中取),具体见 util/doubanutil.py 中的相关方法
4. 验证码识别:验证码识别模块调用百度OCR接口,自测识别率不是很高,但基本能满足要求。如要使用该功能,需要申请百度开发者账号,不再赘述(后续考虑自己实现验证码识别,敬请期待~);在该模块中,首先爬取发帖界面的html源码,取出验证码的存储地址,下载至本地 image/目录下,由于验证码有可能重复,为避免重复存储验证码图片,将图片地址命名为图片文件的md5值。这样,每次下载图片后,计算文件的md5值,如果已存在,则不保存至本地。
5. 对了,我在代码里用到了函数式编程的设计模式(filter模式),主要体现在group文件夹下的join.py quit.py remove.py三个文件当中,因为加入小组、退出小组及移除帖子都需要获取相应的链接,在此处有共性也有差异。所以做了抽象,具体参见代码实现。
欢迎批评指正,提出意见。
===============================================
代码请见github:https://github.com/echoTheLiar/DoubanAuto
===============================================
代码请见github:https://github.com/echoTheLiar/DoubanAuto
主要实现原理阐述如下:
1. 要在豆瓣上自动完成针对小组的操作,首先需要模拟浏览器登录,此处利用cookie携带登录信息,如利用上述代码,请在Chrome浏览器中右键检查,将获得的Cookie信息复制到代码文件 config/doubanCookies.txt 下替换原有内容即可
2. 自动加入小组:发帖的前提是加入小组。加入小组利用代码实现时,通过抓取相应的加入小组的链接,再利用get请求即可。我在示例代码中演示了如何加入活跃的小组,可以修改代码按自己意愿调用;此处活跃小组是之前爬取到的豆瓣上成员超过10000的小组id,如需下载,请见http://download.csdn.net/download/doleria/10143962 ,没有这个文件也不影响功能,注释掉相关代码行即可;
3. 自动发帖、回帖:手动在浏览器中进行发帖操作(前提:在已加入的小组里),然后利用抓包程序(如fiddler)查看这一过程中POST或GET的具体参数,此处不再赘述;需要注意的是,有个ck参数,会随着用户变化而变化,代码实现时在cookie中取),具体见 util/doubanutil.py 中的相关方法
4. 验证码识别:验证码识别模块调用百度OCR接口,自测识别率不是很高,但基本能满足要求。如要使用该功能,需要申请百度开发者账号,不再赘述(后续考虑自己实现验证码识别,敬请期待~);在该模块中,首先爬取发帖界面的html源码,取出验证码的存储地址,下载至本地 image/目录下,由于验证码有可能重复,为避免重复存储验证码图片,将图片地址命名为图片文件的md5值。这样,每次下载图片后,计算文件的md5值,如果已存在,则不保存至本地。
5. 对了,我在代码里用到了函数式编程的设计模式(filter模式),主要体现在group文件夹下的join.py quit.py remove.py三个文件当中,因为加入小组、退出小组及移除帖子都需要获取相应的链接,在此处有共性也有差异。所以做了抽象,具体参见代码实现。
欢迎批评指正,提出意见。
===============================================
代码请见github:https://github.com/echoTheLiar/DoubanAuto
===============================================
相关文章推荐
- python实现微信自动回复及接入聊天机器人等功能
- python实现微信机器人自动回复
- Python实现微信自动回复机器人(简单)
- Python实现微信自动回复机器人
- Python实现微信自动回复(机器人版本)
- python itchat实现微信自动回复的示例代码
- python学习之路之案例0(实现登录功能,登录错误次数超过3次,自动退出登录)
- Python实现的一个自动售饮料程序代码分享
- C# asp.net 搭建微信公众平台(可实现关注消息与消息自动回复)的代码以及我所遇到的问题
- Python实现爬取知乎神回复简单爬虫代码分享
- Python3实现的腾讯微博自动发帖小工具
- python简易爬虫来实现自动图片下载
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
- 基于python实现jenkins自动发布代码平台 推荐
- [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图
- Python实现爬取知乎神回复简单爬虫代码分享
- Python爬虫实现自动登录、签到
- python3简单爬虫实现代码
- 使用python实现baidu hi自动登录的代码
- Python 实现网络爬虫 抓取静态网页【代码】