Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > 其他编程语言 > 用Python写了一个最简单的灌水机
【标  题】:用Python写了一个最简单的灌水机
【关键字】:Python
【来  源】:http://www.cublog.cn/u/11/showart.php?id=87633

用Python写了一个最简单的灌水机

Your Ad Here
我家领导看到某个婴幼用品网站的论坛灌水可以积分换奖品,决定大肆灌水。可是很快就发现灌水太慢。我正好很久没有写Python的程序了,于是乎手痒,就练习了一下。
 

#! /usr/bin/python

import urllib, urllib2, cookielib
import re, time

#####################################
#
# Globals
#
#####################################
site = 'http://www.**********.com.cn/bbs'
params = {'title':'Re:', 'body':'Up Up', 'userface':'1'}
data = urllib.urlencode(params)

####################################
#
# Store the cookie
#
####################################
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

########################
#
# setup connection
#
########################
conn = opener.open(site + '/index.asp')

####################################
#
# Find the passcode and prompt user
#
####################################
conn  = opener.open(site + '/code.asp')
conn.read(54) # the header of bitmap file
debug = ['', '', '', '', '', '', '', '', '', '']
s = ['', '', '', '']
bg = '\xee\xee\xee'

for x in range(0, 10):
 for y in range(0, 4):
  for z in range(0, 10):
   data = conn.read(3)
   if data == bg:
    s[y] += '1'
    debug[x] += ' '
   else:
    s[y] += '0'
    debug[x] += '#'
  #debug[x] += '|'

for x in range (9, -1, -1):
 print debug[x]
 
passcode = raw_input('Please input passcode as above: ')
params = {'username':'elf_cr', 'UserPassword':'spirit', 'passcode':passcode}
data = urllib.urlencode(params)
req = urllib2.Request(site + '/chkuserj.asp', data)
conn = opener.open(req);

##############################
#
# find titles
#
##############################
conn = opener.open(site + '/jj.asp?fenlei=3')
reo = re.compile(r'titleid=(\d+)');
f = conn.readlines()
for line in f:
    if line.find('titleid=') != -1:
        m = reo.search(line);
        tid = m.group(1)
        # post my replies
        print 'Re: ' + tid
        conn = opener.open(site + '/saveh.asp?fenlei=2&titleid=' + tid, data)
        conn.close()


 
主要是学习了一下如何使用urllib, urllib2等和HTTP有关的module。能很快写出来的一个重要原因是网站的验证码是非常简单的24位BMP。而且没有任何的变形,所以很好识别。但是我比较懒,就没有做10个数字的图片来比较,而是自己手工输入验证码。
 
另外就是练习了一下re这个module。
 
昨天晚上刷了一下墙,搞出来400来分。这个程序还是有很多缺陷的。比如我应该做一个回帖的Sequence,从里边随机抽取内容,而不是使用一个固定的字符串来作为回帖内容。还有就是发贴延时了什么的。
灌水机的一点改进:【上一篇】
用python从mysql数据库中得到account and passwd:【下一篇】
【相关文章】
  • python(23): 发生器和循环器(14.6)
  • 准备先用python写个简单的socks5 proxy,研究清楚协议
  • 关于bash,sed,awk,perl,python的一点比较?
  • 为什么Python的性能比较好呢?
  • 你有,我有,Python也有
  • Python是如何推荐自己的?
  • 用Python进行网页分析实现批量下载(final version)
  • Python:无可比拟的参数机制
  • Python:缺失的访问控制?
  • Python的可调用对象
  • 【随机文章】
  • 如何升级网络(1)
  • 王老师 C++ 运算符重载 转换函数 第二讲
  • shell基础12:tr
  • C#学习笔记(4)
  • FREEBSD下snmp+mrtg实现对网络流量、CPU、内存等的监视
  • 简析BCRAN中的一些概念
  • server side code --> client side
  • opencms 汉化
  • 保存全部页面的方法
  • c语言函数库
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.