def loginYahoo(username, password): url0 = \'\'\' http://mail.yahoo.com.cn \'\'\' response = opener.open(url0) data0 = response.read() done =re.search( r\'(?<=(value=")).*?(?=")\', re.search( r\'(?<=(name=\.done)).*?(?=>)\', data0 ).group()).group() challenge = re.search( r\'(?<=(value=")).*?(?=")\', re.search( r\'(?<=(name="\.challenge")).*?(?=>)\', data0 ).group()).group() url1 = \'\'\' http://edit.bjs.yahoo.com/config/login \'\'\' values = { \'.intl\' : \'cn\', \'.done\' : "%s%s" % (done, "%26.remember%3Dy%26.persistent%3D"), \'.src\' : \'ym\', \'.cnrid\' : \'ymhp_20000\', \'.challenge\' : \'%s\' % challenge, \'login\' : \'%s@yahoo.cn\' % username, \'passwd\' : \'%s\' % password, \'.remember\' : \'y\', \'submit\' : \'%B5%C7%C2%BC\' } data = urllib.urlencode(values) req = urllib2.Request(url1, data) req.add_header(\'Referer\', \'http://mail.cn.yahoo.com/\') response = opener.open(req) data2 =response.read() folder = re.search( r\'(?=(showFolder)).*?(?=")\', data2).group() total = re.search( r\'(?<=(tt=)).*\', folder).group() num_per_page = re.search( r\'(?<=(pSize=)).*?(?=&)\', folder ).group() num_per_page = string.atoi(num_per_page) mod = string.atoi(total) % num_per_page num_times = string.atoi(total) / num_per_page if mod > 0 : num_times += 1; index = 0 for i in xrange(num_times): url2 = "http://cn.mc924.mail.yahoo.com/mc/%s&startMid=%d" % (folder, i * num_per_page ) response = opener.open(url2) data3 = response.read() for match in re.finditer(r\'(?<=(showMessage)).*?(?=\>)\', data3): index += 1 part1 = "第%d封邮件" % index part2 = "%s" % match.group() part1 = part1.decode(\'utf8\').encode(\'gbk\') subject = re.search( r\'(?<=(title=")).*?(?=")\', part2 ).group() subject = part1.decode(\'gbk\') + " " + subject.decode(\'utf8\') print( subject.encode(\'gbk\'))
相关文章: