码迷,mamicode.com
首页 > 编程语言 > 详细

python解析Json、smtplib初解

时间:2015-01-15 10:59:03      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:python   smtplib   json   lxml   

Preface:前段时间boss突发奇想,想要检测iPhone6供货,吓我,这是干啥呢。同仁提到肯定是想抢iPhone6,打开官网:http://store.apple.com/cn/buy-iphone/iphone6,在当时的时候显示缺货,原来是想要检测官网iPhone6的页面变化,等到缺货变为有现货的时候立马下单抢,跟抢火车票似的,隔一段时间访问一次,检测页面是否发生了变化,发生了变化手机短信或者邮件通知用户立马下单。不过当时师兄立马写好了,又吓我,当时自己在备期末考,无暇顾及,如今考完了想试下,却也没坚持下来,但涉及到的一些模块也稍微记录下来。废话不多说,进入主题。。。


1.首先想到的是python发邮件,在python相关的技术群里看到过,搜了下,果然有个包:smtplib。各网友的博客也是一大堆,参考博友的随便写了个,不过,对于smtplib包不能发QQ邮箱,说是因为什么服务器问题。

python用smtplib包发邮件:

#coding:utf-8
import smtplib      #用来发邮件的包
from email.mime.text import MIMEText

mail_to="1357654126@qq.com"

def send_mail(to_list,sub,content):
    '''
    to_list:发给谁
    sub:主题
    context:内容
'''
    #服务器,用户名、口令以及邮箱后缀
    mail_host="smtp.163.com"    #163服务器,若是其他的响应的换下,如126邮箱服务器
    mail_user="XXXXX"           #邮箱号,不用包括@及@后面的内容。
    mail_pass="XXX"             #邮箱密码
    mail_postfix="163.com"      #邮箱后缀
    me=mail_user+"<"+mail_user+"@"+mail_postfix+">"
    msg=MIMEText(content)
    msg["Subject"]=sub
    msg["From"]=me
    msg["To"]=to_list

    try:
        s=smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
        return True
    except Exception,e:
        print "2"
        print str(e)
        return False

if __name__=="__main__":
    if send_mail(mail_to,"hello","this is python sent"):
        print "send success"
    else:
        print "send fail"

2.其次,同时想到的是获取网页并解析,看《python核心编程》的时候有提到,也简单。用urllib包获取就好,两句代码就搞定。解析的话,lxml包可破。不过当时晕了,不知怎么看成了json,搜了下python解析json,汗,等稍微学了下然后才反应过来源代码是html,晕了,没继续下去弄着,待有空并且想弄的时候再说了。

python用urllib获取网页:

import urllib
s_url="http://store.apple.com/cn/buy-iphone/iphone6"
s_txt=urllib.urlopen(s_url).read()
print s_txt
print 30*"*"

解析json,不用说,官网资料最全了:https://docs.python.org/2/library/json.html,其次一些博友的博客:http://crazyof.me/blog/archives/368.html

#coding:utf-8
'''

'''
import json

s=json.loads('{"name":"test","type":{"name":"seq","parameter":["1","2"]}}')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][1]

for i in s.keys():
    print i,s[i]

python解析Json、smtplib初解

标签:python   smtplib   json   lxml   

原文地址:http://blog.csdn.net/u010454729/article/details/42737233

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!