您的位置:首页 > 编程语言 > Python开发

人人影视自动签到Python脚本

2016-05-10 11:36 681 查看
# -*- coding: utf-8 -*-

import urllib
import urllib2
import cookielib
import re
import zlib

LOGIN_URL = r'http://www.zimuzu.tv/User/Login/ajaxLogin'
QIANDAO_URL = r'http://www.zimuzu.tv/user/sign'

class Zimuzu(object):
def __init__(self):
self.operate = ''  # response的对象(不含read)

self.cj = cookielib.CookieJar()
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)

# 解压收到的gzip数据
def unzipData(self, response):
content = response.read()
gzipped = response.headers.get('Content-Encoding')
if gzipped:
html = zlib.decompress(content, 16 + zlib.MAX_WBITS)
else:
html = content

return html

def login(self, username, password):
postdata = {
'account': username,
'password': password,
'remember': 1,
'url_back': r'http://www.zimuzu.tv/',
}
login_success_pattern = re.compile(r'"info":"(.+?)"')

# 取得登录成功/失败的提示信息
self.operate = self._get_response(LOGIN_URL, postdata, isAjax=True, refererurl=r'http://www.zimuzu.tv/user/login')
login_tip_page = self.unzipData(self.operate)
login_success_info = login_success_pattern.search(login_tip_page)

# 显示登录成功/失败信息
if login_success_info:
print login_success_info.group(1).decode('unicode_escape')
return True
else:
print u'无法获取登录状态'

return False

def qianddao(self):
self.operate = self._get_response(QIANDAO_URL)
qiandao_page = self.unzipData(self.operate)
a = 5

def _get_response(self, url, data = None, refererurl=None, isAjax=False):
if data is not None:
req = urllib2.Request(url, urllib.urlencode(data))
else:
req = urllib2.Request(url)

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN',
'Connection':'close',
#'Referer':None
}
header = []
for key, value in headers.items():
elem = (key, value)
header.append(elem)

if isAjax:
header.append(('X-Requested-With', 'XMLHttpRequest'))

if refererurl != None:
header.append(('Referer', refererurl))

self.opener.addheaders = header
response = self.opener.open(req)
return response

if __name__ == '__main__':
myzimuzu = Zimuzu.Zimuzu()
myzimuzu.login('用户名', '密码')
myzimuzu.qianddao()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 登录 签到 Post