码迷,mamicode.com
首页 > 其他好文 > 详细

自动化发帖工具实践

时间:2015-01-16 14:29:48      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 

最近做一个小项目,实现多个论坛的自动化发帖,总体来说不算太难,但有一些网站有很强的限制,做起来也不容易,今天对遇到的问题做个简单的总结。

自动化发帖主要分为两个过程:登陆和发帖

1)登陆中实现难点

赶集网中cookie比较难获取,以及登陆用https,需要特定设置抓取; 58登陆的实现需要用rsa和md5加密,需要pyv8调用js来实现;

登陆过程中验证码的识别,这个是最难的。 python实现利用pytesser调用tesseract来实现验证码识别;

登陆过程中post数据加密或者多次交互的结果

总结:找到提交的关键请求;对请求的每个参数进行分析和获取

2)发帖过程

类型实现模糊匹配,首先需要将类型抓取下来;其次调用模糊匹配类

3)编码问题

数据编码-> 程序编码-> 网站编码  尽可能在解析过程中保持一致,这样避免出现乱码,或者无法解析; 过程中用unicode,调用函数时要用utf-8或者gbk来实现;

请求响应编码,要解析,首先对编码进行分析

总结:可以用chardet来检测编码类型,或者isinstance,type来查看编码,进行decode或者encode

4)数据格式

主要是时间,数字,字符

用专门的类来处理时间解析,用特定的类是实现正则表达式抓取特定的数字和特定内容

5)无结构数据输出

response响应的结果可能是object,也可能是array,其中特定字段可能不存在;所以需要应用健全函数对dict或者array进行输出,对某个输出进行边界检测;

6)界面设计

用pyqt4来实现

7)http请求

用requests中session来实现交互

8)网页解析

用beautifulsoup来解析网页,比较健全的类,但带来很大的内存消耗,无法释放(不知道怎么处理)

HTMLParser也可以处理,但处理情况比较单一,应用不方便;

所以后来全部用正则表达式处理,要注意正则表达式过程中,需要转义的字符:()’ ‘ ? 等

自动化发帖工具实践

标签:

原文地址:http://www.cnblogs.com/purejade/p/4228452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!