Very CD 관수 기 데모 코드 (다른 스티커 코드 첨부)

6825 단어
"Very CD 의 그 구리 CD 가 후보 구역 에 들 어 갈 수 있다 는 규정 은 매우 귀 찮 습 니 다. 물 을 넣 어야 업 그 레이 드 를 할 수 있 지만 관개 하기 가 귀 찮 습 니 다. 그래서 관수 각본 을 썼 습 니 다. 어떤 사람 이 원 하 느 냐 고 물 으 면 차라리 보 내 서 공유 하 세 요."사용 방법: 1. username 과 passwd 를 해당 하 는 동쪽 으로 바 꿉 니 다.(beautifulsoup 도 배 울 수 있 습 니 다. 쓴 코드 는 더욱 직관 적 이 고 이해 하기 쉽 지만 정 규 는 통용 성 이 강하 기 때문에 배 워 야 합 니 다) 3. html 기본 형식 을 배우 고 웹 페이지 를 가 져 오 는 GET / POST 체 제 를 이해 합 니 다. 4. 그리고 코드 를 보 세 요. 이 스 크 립 트 는 간단 하기 때문에 주석 을 달 았 습 니 다.
매일 물 을 주입 하려 면 Liux 는 cron job 를 만 들 고 windows 는 임 무 를 계획 하 며 2 주 후에 구리 로 올 라 가 그 후보 지역 을 돌아 다 닐 수 있 습 니 다.
#!/usr/bin/env python
#coding:utf-8
#author:observer
#http://obmem.info/old
import urllib,urllib2,cookielib
import re,time,random
 
username = 'username'  #        
passwd = 'password' #       
#        ,   ,         
msg = [ '    ',
        'Mark',
        '     ,  ',
        '    ',
    ]
 
def login():
    '''        '''
    print 'try to login...'
 
    #      cookie
    cookie=cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie), urllib2.HTTPHandler)
    urllib2.install_opener(opener)
 
    #   verycd fk ,    
    print '...getting login form...'
    loginform = urllib2.urlopen('http://secure.verycd.com/signin/*/http://www.verycd.com/').read()
    fk = re.compile(r'id="fk" value="(.*)"').findall(loginform)[0]
 
    #  ,    
    postdata=urllib.urlencode({'username':username,
                           'password':passwd,
                           'continueURI':'http://www.verycd.com/',
                           'fk':fk,
                           'login_submit':'  ',
    })
    req = urllib2.Request(
        url = 'http://secure.verycd.com/signin/*/http://www.verycd.com/',
        data = postdata
    )
 
    # header,         ,      ,              ,      
    req.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6')
    req.add_header('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
    req.add_header('Accept-Encoding','gzip,deflate')
 
    #    ,        
    print '...login form submitted'
    result = urllib2.urlopen(req).read()
    print '...login succeed!'
 
def farm():
    '''         '''
    #    ,         id
    res = urllib.urlopen('http://www.verycd.com').read()
    topics = re.compile(r'/topics/(\d+)').findall(res)
    topics = set(topics)
    print topics
 
    #         ,       :)
    #            
    for topic in topics:
        url = 'http://www.verycd.com/topics/'+str(topic)+'/reply#fast-replay'
        print url
        postData = {
            'contents':random.choice(msg),
            'use_bbcode':'1',
            'tid':str(topic),
            'Action':'FolderCommentOperate:doReplyFolder'
        }
        postData = urllib.urlencode(postData)
        req = urllib2.Request(url = url, data = postData )
        kk = urllib2.urlopen(req).read()
        time.sleep(random.randint(1,10)) #         
 
if __name__ == '__main__':
    login()
    farm()

-------------------------------------------------------------------
#! /usr/bin/python
# -*- coding: cp936 -*-
import urllib, urllib2, cookielib
import re, time, random
#####################################
#
# Globals
#
#####################################
site = 'http://www.*******.com.cn/bbs'
catagory = '2'
sleep_interval = '900'
content_choices = ['    ', '  ', ' ', '  ', '    ……', '   !', '  ',
                   '    ', '    ', '   ,   ']
content_max_index = len(content_choices) - 1
####################################
#
# 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':'******', 'UserPassword':'******', 'passcode':passcode} data = urllib.urlencode(params) req = urllib2.Request(site + '/chkuserj.asp', data) conn = opener.open(req); print conn.read(200) ############################## # # find titles # ############################## conn = opener.open(site + '/jj.asp?fenlei=' + catagory) reo = re.compile(r'titleid=(\d+)'); f = conn.readlines() post_count = 0 for line in f: if line.find('titleid=') != -1: m = reo.search(line); tid = m.group(1) # Get random data for watering the topic, hehe index = random.randint(0, content_max_index) userface = random.randint(1,24) params = {'title':'Re:', 'body':content_choices[index], 'userface':str(userface)} data = urllib.urlencode(params) # post my replies print 'Re: ' + tid + ' with data: ' + content_choices[index] #conn = opener.open(site + '/saveh.asp?fenlei=' + catagory + '&titleid=' + tid, data) # This is a bug of the website. There is no catagory 33 at all. The post is lost, # but the post score of the user has been increased. hehe. conn = opener.open(site + '/saveh.asp?fenlei=' + '33' + '&titleid=' + tid, data) #print conn.read() conn.close() post_count = post_count + 1 # Don't make a flood time.sleep(sleep_interval) print '

Total posted: ' + post_count

좋은 웹페이지 즐겨찾기