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

yipeiwu_com5年前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实现的解析crontab配置文件代码

#/usr/bin/env python #-*- coding:utf-8 -*- """ 1.解析 crontab 配置文件中的五个数间参数(分 时 日 月 周),获取他们对...

tensorboard实现同时显示训练曲线和测试曲线

tensorboard实现同时显示训练曲线和测试曲线

在做网络训练实验时,有时需要同时将训练曲线和测试曲线一起显示,便于观察网络训练效果。经过很多次踩坑后,终于解决了。具体的方法是:设置两个writer,一个用于写训练的数据,一个用于写测试数...

python实现字符串和日期相互转换的方法

本文实例讲述了python实现字符串和日期相互转换的方法。分享给大家供大家参考。具体分析如下: 这里用的分别是time和datetime函数 ''' @author: jiangqh...

不要用强制方法杀掉python线程

前言:     不要试图用强制方法杀掉一个python线程,这从服务设计上就存在不合理性。 多线程本用来任务的协作并发,如果你使用强制手段干掉线程,那么很大...

python中pylint使用方法(pylint代码检查)

一、Pylint 是什么 Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。 Pylint 是一个 Pyth...