摘要:所以有了下面這段程序有時(shí)會(huì)亂碼解析返回的是一個(gè)列表黎海威三個(gè)參數(shù)第一個(gè)為文本內(nèi)容,第二個(gè)設(shè)置文本格式,第三個(gè)設(shè)置編碼景順長(zhǎng)城滬深增強(qiáng)基金經(jīng)理有變動(dòng),已不是黎海威請(qǐng)查收。
最近因?yàn)橹Ц秾毸土宋覀€(gè)紅包,可以買(mǎi)基金,又看了一些基金的文章,想買(mǎi)點(diǎn)基金玩玩,在知乎上看到這樣一篇文章:
其實(shí)如果是長(zhǎng)期定投,用簡(jiǎn)單的方法篩選即可:
晨星近5年、近3年評(píng)級(jí)為五星;
天天的業(yè)績(jī)排名近3年、2年、1年、6個(gè)月的業(yè)績(jī)都為優(yōu)秀;
基金經(jīng)理人在近3年無(wú)更換。
然后我就想及時(shí)知道我買(mǎi)的基金的經(jīng)理人有沒(méi)有換,并發(fā)郵件來(lái)用通知我。所以有了下面這段程序
import requests from bs4 import BeautifulSoup url = "http://fund.eastmoney.com/000311.html?spm=search" request = requests.get(url) request.encoding = "utf-8" #有時(shí)會(huì)亂碼 result = request.text html = BeautifulSoup(result,"lxml") #解析 titel = html.select_one("#body div.fundDetail-main > div.fundInfoItem > div.infoOfFund td:nth-of-type(3) a") #select返回的是一個(gè)列表 name = titel.get_text().strip() print(name) if name != "黎海威": import smtplib from email.mime.text import MIMEText from email.header import Header # 三個(gè)參數(shù):第一個(gè)為文本內(nèi)容,第二個(gè) plain 設(shè)置文本格式,第三個(gè) utf-8 設(shè)置編碼 msg = MIMEText("景順長(zhǎng)城滬深300增強(qiáng)(000311):基金經(jīng)理有變動(dòng),已不是黎海威!請(qǐng)查收。", "plain", "utf-8") # 輸入Email地址和口令: from_addr = "[email protected]" password = "XXX" # 輸入SMTP服務(wù)器地址: smtp_server = "smtp.163.com" # 輸入收件人地址: to_addr = "[email protected],[email protected]" msg["From"] = from_addr msg["To"] = to_addr msg["Subject"] = "基金經(jīng)理變更" server = smtplib.SMTP(smtp_server, 25) # SMTP協(xié)議默認(rèn)端口是25 server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, to_addr.split(","), msg.as_string()) ##發(fā)給多個(gè)人 server.quit()第二版:爬取多個(gè)基金
#====================================第二版========================================= import requests from bs4 import BeautifulSoup #郵件 import smtplib from email.mime.text import MIMEText from email.header import Header names_pc=[] #爬蟲(chóng)下來(lái)的名字 fundnames = ["景順長(zhǎng)城滬深300增強(qiáng)(000311)","興全滬深300指數(shù)(LOF)(163407)"] names_pass = ["黎海威", "申慶"] stock_code = ["000311","163407"] urls =[] for i in stock_code: url = "http://fund.eastmoney.com/"+str(i)+".html?spm=search" urls.append(url) for url in urls: request = requests.get(url) request.encoding = "utf-8" #有時(shí)會(huì)亂碼 result = request.text html = BeautifulSoup(result,"lxml") #解析 titel = html.select_one("#body div.fundDetail-main > div.fundInfoItem > div.infoOfFund td:nth-of-type(3) a") #select返回的是一個(gè)列表,用select的話(huà)用[0]可以 name = titel.get_text().strip() print(name) names_pc.append(name) print(names_pc) from_addr = "[email protected]" password = "XXXX" smtp_server = "smtp.163.com" # 輸入SMTP服務(wù)器地址: to_addr = "[email protected],[email protected]" # 輸入收件人地址: for name_pc,name_pass,fundname in zip(names_pc,names_pass,fundnames): if name_pc != name_pass: text = "{}:基金經(jīng)理有變動(dòng),已不是{}!請(qǐng)查收".format(fundname,name_pass) msg = MIMEText(text, "plain", "utf-8") msg["From"] = from_addr msg["To"] = to_addr msg["Subject"] = "基金經(jīng)理變更" ##主題 server = smtplib.SMTP(smtp_server, 25) # SMTP協(xié)議默認(rèn)端口是25 server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, to_addr.split(","), msg.as_string()) ##發(fā)給多個(gè)人 server.quit()定時(shí)任務(wù)
既然已經(jīng)寫(xiě)好程序了,當(dāng)然希望它每天能跑,然后我就去阿里云租了臺(tái)服務(wù)器
輸入crontab -e來(lái)執(zhí)行定時(shí)任務(wù),注意上面的程序在阿里云上需要將smtplib.SMTP函數(shù)改成smtplib.SMTP_SSL來(lái)執(zhí)行才能跑通
0 10 * * * /usr/bin/python3 /home/admin/fund/fundchange2email_v1.py > /home/admin/fund/fund.log
再ctrl+x保存并退出
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41414.html
摘要:結(jié)合項(xiàng)目代碼看比較好一些說(shuō)明爬的是手機(jī)端網(wǎng)頁(yè)版的微博聽(tīng)說(shuō)這個(gè)爬起來(lái)簡(jiǎn)單,我就爬了。最后的數(shù)據(jù)采用序列化后存儲(chǔ)在本地想用數(shù)據(jù)庫(kù)的自己改一下就好了,不會(huì)的可以去看看廖雪峰老師的教程。關(guān)于,可以看廖雪峰老師的講解。 為什么說(shuō)是給新手的呢? 因?yàn)轫?xiàng)目很小,算上空行才200來(lái)行代碼,甚至有些簡(jiǎn)陋。相比于動(dòng)不動(dòng)寫(xiě)成幾個(gè)大模塊的教程,新手們能更快理解我在干什么,節(jié)省學(xué)習(xí)時(shí)間。當(dāng)然,該有的模擬登陸,數(shù)...
摘要:又不似程序員可以直接套用框架來(lái)快速建站,不重復(fù)發(fā)明輪子。至此開(kāi)啟了新的折騰之旅。以及百度收錄的時(shí)候不執(zhí)行腳本等原因。能對(duì)應(yīng)高并發(fā),還能被百度爬蟲(chóng)識(shí)別。主要內(nèi)容如標(biāo)題文章等用標(biāo)簽渲染,讓百度爬蟲(chóng)一次收錄成功。 showImg(https://segmentfault.com/img/remote/1460000018057514); 目前版本的博客地址: https://zzzmh.cn...
摘要:目前這個(gè)爬蟲(chóng)還是比較簡(jiǎn)單的類(lèi)型的,直接抓取頁(yè)面,然后在頁(yè)面中提取數(shù)據(jù),保存數(shù)據(jù)到數(shù)據(jù)庫(kù)??偨Y(jié)寫(xiě)這個(gè)項(xiàng)目其實(shí)主要的難點(diǎn)在于程序穩(wěn)定性的控制,容錯(cuò)機(jī)制的設(shè)置,以及錯(cuò)誤的記錄,目前這個(gè)項(xiàng)目基本能夠?qū)崿F(xiàn)直接運(yùn)行一次性跑通整個(gè)流程。 前言 之前研究數(shù)據(jù),零零散散的寫(xiě)過(guò)一些數(shù)據(jù)抓取的爬蟲(chóng),不過(guò)寫(xiě)的比較隨意。有很多地方現(xiàn)在看起來(lái)并不是很合理 這段時(shí)間比較閑,本來(lái)是想給之前的項(xiàng)目做重構(gòu)的。后來(lái) 利用這...
閱讀 2904·2021-11-17 09:33
閱讀 3686·2021-11-16 11:42
閱讀 3508·2021-10-26 09:50
閱讀 1363·2021-09-22 15:49
閱讀 3057·2021-08-10 09:44
閱讀 3697·2019-08-29 18:36
閱讀 3957·2019-08-29 16:43
閱讀 2236·2019-08-29 14:10