import smtplib from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import requests from lxml import etree import datetime import re import time def timer(n): while True: email = MIMEMultipart() email['From'] = 'sakura_sea_lzk@163.com' email['To'] = '13479501082@139.com' email['Subject'] = Header('freesea', 'utf-8') smtp_obj = smtplib.SMTP_SSL('smtp.163.com', 465) smtp_obj.login('sakura_sea_lzk@163.com', 'VKHRSRBAQLMJLKPE') ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S' theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT) print('当前时间:',theTime) url = 'https://www.kancaibao.com/ep' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44' } respons = requests.get(url =url,headers = headers) tree = etree.HTML(respons.text) r=tree.xpath('/html//body/div//td[@id="date_0"]/text()') print('获取的数据如下\n时间:',r[0]) r=tree.xpath('/html//body/div//td[@id="gzclose_0"]/text()') a=float(str(r[0]))*100 c = str(round(a,3))+ '%' print('国债收益率: ',c) r=tree.xpath('/html//body/div//td[@id="ratemv_0"]/text()') a=float(str(r[0]))*100 c = str(round(a,3))+ '%' print('股市收益率: ',c) r=tree.xpath('/html//body/div//td[@id="rategz_0"]/text()') a=float(str(r[0])) c = str(round(a,3)) print('股债比: ',c) c = float(c) if c>=2.5: print("投资建议:安全,股债策略10:0") if 2.2<=c<2.5: print("投资建议:较为安全,股债策略7:3") content = "看财报数据\n"+"股债比:"+str(b)+'\n'+'可以考虑购买' email.attach(MIMEText(content, 'plain', 'utf-8')) smtp_obj.sendmail( 'sakura_sea_lzk@163.com', ['13479501082@139.com'], email.as_string() ) if 2<=c<2.2: print("投资建议:谨慎乐观,股债策略6:4") if 1.8<=c<2: print("投资建议:普通,股债策略5:5") if 1.55<=c<1.8: print("投资建议:有风险,股债策略4:6") if c<1.55: print("投资建议:赶紧跑") print('\n从乐咕网上获取的数据如下') url1 = "https://legulegu.com/stockdata/hs300-ttm-lyr" headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } res = requests.get(url = url1,headers = headers) tree1 = etree.HTML(res.text) r1 = tree1.xpath('/html//div[@class="data-description"]//tr[6]//td/text()') print(r1[0],':',r1[1]) url2 = 'https://legulegu.com/stockdata/china-10-year-bond-yield' res = requests.get(url = url2,headers = headers) tree2 = etree.HTML(res.text) r2 = tree2.xpath('//div[@style="color: #e57062"]/text()') r3 = r2[0].replace("\n","") print(r3) rq = re.findall('\W*(\d*\W\d*)',r3,re.A) a = float(rq[0])/float(r1[1]) b = round(a,2) print('股债比为:',b) if b>=3.1: content = "乐咕网爬取数据计算\n"+"股债比:"+str(b)+'\n'+'可以考虑购买' email.attach(MIMEText(content, 'plain', 'utf-8')) smtp_obj.sendmail( 'sakura_sea_lzk@163.com', ['13479501082@139.com'], email.as_string() ) print('个人建议:\n3.0对标看财报的2.2,也就是安全区。\n2.5对标2.0\n2.0对标1.5,也就是警戒区') time.sleep(n) timer(86400)