Python2.x爬蟲--軟考報名郵件提醒

最近在學習爬蟲,然後我就琢磨寫一點既能對我有幫助又能用到學到的知識的程序,然後腦洞大開,就想到寫一個用於軟考報名郵件提醒的小程序(QAQ上半年木有過)
思路:
首先查看一下軟考報名網站的頁面:
傳送門:軟考報名
這裏寫圖片描述
因爲我在河南地區,現在還沒有開始報名,所以我希望如果網頁上出現了我所在地區的報名時間可以把報名有效時間通過郵件發送給我指定的郵箱,這樣我就不用天天查看這個網頁了

首先打開控制檯,查看這個網頁的結構,找到機構名稱和報名有效時間的那個部分,然後查找一下規律
這裏寫圖片描述
多看看就會發現我所需要的就是div class="layui-col-md5 col1"和div class="layui-col-md5 col2 timeW"這兩個div塊的內容,通過前者查找是否有我需要的城市,查到有的話,就把城市對應的時間提取出來

想要用Python發送郵件的首先需要獲取郵箱的授權碼,我這裏用的是QQ郵箱舉例:
登錄QQ郵箱->設置->賬戶
這裏寫圖片描述
這裏寫圖片描述
如果這裏還是不太明白的可以百度一下

源碼:

#ruankao.py  用xpath解析網頁
#!/usr/bin/python
#coding:utf-8
import os
import sys
import time
import requests
from lxml import etree
import aemail
reload(sys)
sys.setdefaultencoding('utf-8')

header={
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Cookie': 'PHPSESSID=fc6pp410iipjlfe8cti8fdj6u1',
    'Host': '112.74.37.81',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

def main():
    a=''
    url = 'http://112.74.37.81/rk/enroll/index.php/sign/welcome'
    res = requests.get(url , headers = header, timeout = 20).text
    html=etree.HTML(res)    
    b = html.xpath("//*[@class='layui-col-md5 col1' or @class='layui-col-md5 col2 timeW' ]/text()")
    flag = 0
    flag1 = 0
    i = 1
    for c in b:
	if c == "天津":    #這個可以填寫你想要查詢的那個省,以天津爲例子
		flag = 1
		flag1 = i
		break
        i+=1
    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    if flag == 1:
    	aemail.emaill(b[i])
	# aemail_yu.emaill(b[i])
	print b[flag1-1]+"     "+b[flag1]
    else :
	print "對不起,報名時間未到"


if __name__ == '__main__':
    main()
#aemail.py      發送郵件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import requests
import time
from lxml import etree
import re
import smtplib
from email.mime.text import MIMEText
reload(sys)
sys.setdefaultencoding('utf8')

_user = "[email protected]"  #發送提醒郵件的信箱
_pwd  = "xxxxxxxxxxxx" #接收提醒郵件的信箱
_to   = "[email protected]" #_user郵箱的授權碼

def emaill(timee):
	msg = MIMEText("xx省軟考已經開始報名啦~,報名有效時間是:"+timee+" \n請在以下網站及時報名:http://112.74.37.81/rk/enroll/index.php/sign/welcome ")  #發送郵件的內容
	msg["Subject"] = "軟考提醒——該報名啦"  #發送郵件的標題
	msg["From"]    = _user
	msg["To"]      = _to

	try:
    		s = smtplib.SMTP_SSL("smtp.qq.com", 465)  
    		s.login(_user, _pwd)  
    		s.sendmail(_user, _to, msg.as_string())  
   		s.quit()
    except smtplib.SMTPException,e: 
            print ("Falied,%s" %e) 

建議去掉註釋運行~
祝下半年考軟考的同學們一次通過哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章