python模拟登陆Tom邮箱示例分享

yipeiwu_com7年前Python基础
复制代码 代码如下:

def loginTom(username, password):
 url1 = '''
 http://login.mail.tom.com/cgi/login
 '''

 values = {
  'type' : '0',
  'user' : '%s' % username,
  'in_username' : '%s@tom.com' % username,
  'pass' : '%s' % password,
  'style' : '21',
  'verifycookie' : 'y'
 }

 data = urllib.urlencode(values)
 req = urllib2.Request(url1, data)
 response = opener.open(req)
 data2 =response.read()

 sid = re.search(r'(?<=(sid=)).*?(?=&)', data2).group()

 url3 = '''
 http://bjapp6.mail.tom.com/cgi/ldapapp?funcid=mails&sid=%s&fid=1
 ''' % sid
 response = opener.open(url3)
 data3 = response.read()

 b = re.search(r'(?<=nTotalMailCount).*?(?=;)', data3).group()
 c = re.search(r'\d.+', b).group()
 num_per_page = 20
 num_times = string.atoi(c) / 20
 print( num_times )

 index = 0
 for match in re.finditer(r'(?<="Mbox_Td_Subject"\>).*?(?=\</)', data3):
  index += 1
  part1 = "第%d封邮件" % index
  part2 = " %s" % match.group()
  part1 = part1.decode('utf8').encode('gbk')
  subject = re.search(r'(?<=\>).+', part2).group()
  subject = part1.decode('gbk') + "    " + subject.decode('gbk')
  print( subject.encode('gbk'))

 for i in xrange(num_times - 1):
  url3 = '''
  http://bjapp6.mail.tom.com/cgi/ldapapp?funcid=mails&sid=%s&fid=1&start=%d
  ''' % (sid, (i + 1) * num_per_page )
  response = opener.open(url3)
  data3 = response.read()

  for match in re.finditer(r'(?<="Mbox_Td_Subject"\>).*?(?=\</)', data3):
   index += 1
   part1 = "第%d封邮件" % index
   part2 = " %s" % match.group()
   part1 = part1.decode('utf8').encode('gbk')
   subject = re.search(r'(?<=\>).+', part2).group()
   subject = part1.decode('gbk') + "    " + subject.decode('gbk')
   print( subject.encode('gbk'))

相关文章

python简单实现旋转图片的方法

本文实例讲述了python简单实现旋转图片的方法。分享给大家供大家参考。具体实现方法如下: # rotate an image counter-clockwise using the...

python处理DICOM并计算三维模型体积

在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积。 思路: 1、计算每个体素的体积。每个体素为长方体,x,y为PixelSpacing,z为层间距 使用pydicom.re...

使用python代码进行身份证号校验的实现示例

使用python代码进行身份证号校验的实现示例

先说,还有很多可以优化的地方。 1、比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了。 2、比如判断加入地址数据库,增加输出信息 3、增加时间判...

flask中使用蓝图将路由分开写在不同文件实例解析

flask中使用蓝图将路由分开写在不同文件实例解析

本文的内容主要是flask中使用蓝图将路由分开写在不同文件的相关介绍,具体如下。 Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。...

Python的Django框架中从url中捕捉文本的方法

每个被捕获的参数将被作为纯Python字符串来发送,而不管正则表达式中的格式。 举个例子,在这行URLConf中: (r'^articles/(?P<year>\...