我们公司erp有一个短信功能,需要充值的,但是没钱了不会通知,之前业务不多,所以也不在意。
但是现在业务量大了,顾客没有收到短信会投诉。所以老板要我们信息部时刻注意着短信余额。
于是乎,写了个每天爬取网店管家短信余额的脚本。
第一次写网页爬取的,学了点bs4和requests,还是蛮有意思的。
import requests
from bs4 import BeautifulSoup
import string
import smtplib
def sendinf(money):
HOST="smtp.qq.com"
SUBJECT="wdgj warning:need recharge"
TO="[email protected]"
FROM="[email protected]"
text="Message service need recharge.Only %s yuan is left ." %(money)
BODY=string.join(("From: %s" %FROM, "To: %s" %TO, "Subject: %s" %SUBJECT, "", text),"\r\n")
try:
server=smtplib.SMTP()
server.connect(HOST, "25")
server.starttls()
server.login("[email protected]","ailoepvkqvnmbjgb")
server.sendmail(FROM, TO, BODY)
server.quit
return True
except Exception, e:
print str(e)
return False
def getinf():
url = 'http://www.wdgj.com/myes/Default.aspx'
cookies= {"ASP.NET_SessionId":"AAAAAAAAAAAAAAAAAAAAAAAAAAA"}
try:
res = requests.post(url, cookies=cookies)
soup=BeautifulSoup(res.text, 'lxml')
lbsmsleft=soup.find(id='lbsmsleft')
money=lbsmsleft.string
return money
except Exception, e:
print str(e)
return False
warning=500
money=getinf()
if money<=warning:
if sendinf(money):
msg="Only %s yuan is left ." % money
else:
msg="Failed to send email."
if __name__ =="__main__":
print msg
最好还是模拟登陆,用cookie登陆,失效了就要改了。但是,模拟登陆的话,脚本里就会有账户密码,不太安全,所以就用cookie了,至少有个时效性防护。