后话:今天运行这个程序的时候无法运行了,看了页面之后,发现网页的一些属性改了,所以大家如果直接复制了,还得改改:2014-04-22
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 14 14:25:06 2014
@author: lifeix
"""
from HTMLParser import HTMLParser
import urllib2
import urllib
import cookielib
import smtplib
from email.mime.text import MIMEText
class favorite(HTMLParser):
links = []
def __init__(self):
HTMLParser.__init__(self)
self.isFavList = False
self.temp = {}
self.isTime = False
self.isTitle = False
self.isLink = False
def handle_starttag(self,tag, attrs):
if tag == 'div':
for key, value in attrs:
if key == 'class' and value == 'fav_list':
self.isFavList = True
break
elif tag == 'span' and self.isFavList:
for key, value in attrs:
if key == 'class' and value == 'time':
self.isTime = True
break
elif key == 'class' and value == 'title':
self.isTitle = True
break
elif tag == 'a' and self.isTitle:
self.isLink = True
for key, value in attrs:
if key == 'href':
self.temp['href'] = value
break
def handle_endtag(self, tag):
pass
def handle_data(self,data):
if self.isTime:
self.temp['time'] = data
self.isTime = False
elif self.isLink:
self.temp['aValue'] = data
self.isTitle = False
self.isLink = False
favorite.links.append(self.temp);
self.temp = {}
@staticmethod
def sendEmail(flag):
if flag == False:
print favorite.links
return
#接收邮箱
mail_to="xxxx@xxx"
content = ""
for result in favorite.links:
content += "<a href='" + str(result['href']) + "'> " + str(result['aValue']) + "</a> " + result['time'] + "\n"
mail_host="smtp.163.com"
#发送邮箱
mail_user="xxxxx"
#发送邮箱密码
mail_pass="xxxxxx"
mail_postfix="163.com"
me=mail_user+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content)
msg['Subject'] = "ceshi"
msg['From'] = me
msg['To'] = mail_to
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, mail_to, msg.as_string())
s.close()
print 'success'
except Exception, e:
print '2'
print str(e)
f = favorite()
cj = cookielib.LWPCookieJar()
cookie_support=urllib2.HTTPCookieProcessor(cj)
opener=urllib2.build_opener(cookie_support,urllib2.HTTPHandler)
urllib2.install_opener(opener)
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
'Referer' : ' http://my.csdn.net/my/favorite'}
#填写自己的u和p
loginUrl = 'http://passport.csdn.net/ajax/accounthandler.ashx?t=log&u=xxxxx&p=xxxxxx&remember=0&f=http%3A%2F%2Fmy.csdn.net%2Fmy%2Ffavorite&rand=0.07206512681810118'
req = urllib2.Request(loginUrl,headers=headers)
conn = urllib2.urlopen(req)
#通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程
request = urllib2.Request('http://my.csdn.net/my/favorite')
response = urllib2.urlopen(request)
text = response.read()
#print text
f.feed(text)
f.sendEmail(True)