def get_info(email, password): info = {} cookie = StrCookieJar.StrCookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) urllib2.install_opener(opener) #login login_url = 'http://www.xiami.com/web/login' login_data = urllib.urlencode({ 'email': email, 'password': password, 'LoginButton': '\xe7\x99\xbb\xe9\x99\x86', 'remember': 1, }) login_headers = { 'Referer': 'http://www.xiami.com/web/login', 'User-Agent': 'Opera/9.60', } login_request = urllib2.Request(login_url, login_data, login_headers) #login_url='http://www.xiami.com/web' #login_request = urllib2.Request(login_url) urllib2.urlopen(login_request) profile_url = "http://www.xiami.com/web/profile" profile_request = urllib2.Request(profile_url, headers=login_headers) profile_response = urllib2.urlopen(profile_request).read() info['id'] = re.findall(uid_re, profile_response)[0] info['cookie'] = cookie.dump() return info
def login(self,email,password): self.cookie = StrCookieJar.StrCookieJar() self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie)) login_url = "https://login.xiami.com/member/login" request = urllib2.Request(login_url,headers=headers) response = self.opener.open(request) data = response.read() dom = lxml.html.fromstring(data) args = dict(map(lambda x:(str(x.name),unicode(x.value).encode("u8")),dom.xpath("//form//input"))) args["email"] = email args["password"] = password request = urllib2.Request(login_url, urllib.urlencode(args), headers) response = self.opener.open(request) data = response.read()
def checkin(user): cookie = StrCookieJar.StrCookieJar(user.cookie) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) urllib2.install_opener(opener) checkin_url = "http://www.xiami.com/web/checkin/id/" + user.uid checkin_headers = { 'Referer': 'http://www.xiami.com/web/', 'User-Agent': 'Opera/9.99', } #checkin_url="http://www.xiami.com/web" checkin_request = urllib2.Request(checkin_url, None, checkin_headers) checkin_response = urllib2.urlopen(checkin_request).read() checkin_pattern = re.compile(r'<a class="check_in" href="(.*?)">') checkin_result = checkin_pattern.search(checkin_response) if not checkin_result: pattern = re.compile( r'<div class="idh">\xe5\xb7\xb2\xe8\xbf\x9e\xe7\xbb\xad\xe7\xad\xbe\xe5\x88\xb0(\d+)\xe5\xa4\xa9</div>' ) result = pattern.search(checkin_response) if result: return result.group(1), checkin_response else: return None, checkin_response checkin_url = 'http://www.xiami.com' + checkin_result.group(1) checkin_headers = { 'Referer': 'http://www.xiami.com/web', 'User-Agent': 'BH_Toolchain0.5', } checkin_request = urllib2.Request(checkin_url, None, checkin_headers) checkin_response = urllib2.urlopen(checkin_request).read() pattern = re.compile( r'<div class="idh">\xe5\xb7\xb2\xe8\xbf\x9e\xe7\xbb\xad\xe7\xad\xbe\xe5\x88\xb0(\d+)\xe5\xa4\xa9</div>' ) result = pattern.search(checkin_response) if result: return result.group(1), checkin_response else: return None, checkin_response
def loadCookie(self,cookie): self.cookie = StrCookieJar.StrCookieJar(cookie) self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))