100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python selenium 自动化查询上海公交卡余额 并邮件通知

python selenium 自动化查询上海公交卡余额 并邮件通知

时间:2022-11-01 20:44:27

相关推荐

python selenium 自动化查询上海公交卡余额 并邮件通知

1、下载python安装。

/downloads/release/python-351/

2、安装selenium

2.1、通过pip 安装

pip install selenium

2.2、通过下载包安装 ,直接下载selenium包:

/pypi/selenium

解压,cmd进入目录:

python setup.py install

3 、 安装Chrome driver

下载地址:/mirrors/chromedriver

下载解压,将 chromedriver.exe 文件放到chrome的安装目录下…\Google\Chrome\Application\ ,然后设置path环境变量;

4、全部代码

# coding = utf-8from selenium import webdriverfrom time import sleepimport smtplibimport tracebackfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartcardIDList = [u"u54311******", u"u728833******"]def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password):'''@subject:邮件主题@msg:邮件内容@toaddrs:收信人的邮箱地址@fromaddr:发信人的邮箱地址@smtpaddr:smtp服务地址,可以在邮箱看,比如163邮箱为@password:发信人的邮箱密码'''mail_msg = MIMEMultipart()mail_msg['Subject'] = subjectmail_msg['From'] =fromaddrmail_msg['To'] = ','.join(toaddrs)mail_msg.attach(MIMEText(msg, 'html', 'utf-8'))try:s = smtplib.SMTP()s.connect(smtpaddr) #连接smtp服务器s.login(fromaddr,password) #登录邮箱s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #发送邮件s.quit()except :print ("Error: unable to send email")print (traceback.format_exc())def get_gj_info(cardID):for i in range(1, 10, 1):try:print("第%d次尝试。。。。" % i)driver = webdriver.Chrome()print("###########>>>>>>>开始打开上海交通网站<<<<<<<<<<#########")driver.get('/')print(driver.title)print("网站打开成功")sleep(2)print("查询公交卡号:%s" % cardID)driver.find_element_by_id("pL1i1").send_keys(cardID)driver.find_element_by_css_selector("a[class=\"pL1b1\"]").click()sleep(2)data = driver.find_element_by_css_selector("p[class=\"amt\"]").textprint("公交卡 {0} {1} ".format(cardID, data))driver.quit()return "公交卡 {0} {1} \n".format(cardID, data)breakexcept:print("查询出错。。。,再次尝试。。。")print("##################>>>>>>>退出查询<<<<<<<<<<##############")return "查询出错。。。"if __name__ == '__main__':fromaddr = "*******@"smtpaddr = ""# 163邮件smtp服务器地址toaddrs = ["*******@", "*******@"]gj_info =''for cardID in cardIDList:gj_info += get_gj_info(cardID)subject = gj_infopassword = "*******"msg = gj_infosendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。