# -*- 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脚本
最新推荐文章于 2024-05-01 09:42:20 发布