源碼地址:https://github.com/xcc3641/pySendOneToEmailhtml
一臺雲服務器python
寫好的Python腳本linux
由於如今「一個」的Android客戶端啓動愈來愈慢,並且不少本身不感興趣的東西(我只是想看看文章),因此就寫了這個小爬蟲。它能夠在「一個」更新後把我要的內容發到個人郵箱裏。git
放在雲服務器裏,因此不用擔憂電費啊其餘問題~github
本身配置的是阿里雲的服務器,學生特惠9.9,Ubuntu系統。這個系統自帶了Python2.7環境,因此不用本身手動去安裝。編程
本地是用的Window10系統,最好安裝下SecureCRSecureFXPortable。遠程鏈接本身的服務器,並且命令行和文件操做會簡便不少。ubuntu
由於「一個」是天天22點會更新,因此本身的服務器要作一個定時服務,ubuntu下自帶了Crontab定時任務。服務器
加入須要執行的腳本網絡
crontab -e 1 22 * * * 路徑/python 路徑/xxx.py 保存重啓 /etc/init.d/cron restart
Python最好寫全路徑,這是一個坑工具
須要在root用戶下進行
具體的Crontab能夠參考Crontab
這裏主要是用到了python自帶的郵件服務的庫和第三方網絡解析庫,代碼量很少並且也不難,有編程基礎的很容易學會。
郵件類庫
from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib
配置郵件&發送郵件的關鍵代碼
msg = MIMEMultipart() msg['From'] = _format_addr(u'Xie CC <%s>' % from_addr) msg['To'] = _format_addr(u'管理員 <%s>' % to_addr) msg['Subject'] = Header(u'The One ' + title, 'utf-8').encode() msg.attach(MIMEText('<html><body><div style="text-align: center;"><p><img src="' + img + '"></p></div>' + '<p style="text-align:center;\"> <br /><br /><strong><span style="font-size:14px;\">' + text + '</span></p><br /><br /><br /><br /><br />' + story + '</body></html>', 'html', 'utf-8')) server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()
這裏本身就不詳細介紹這個庫,具體能夠參考這個教程,Python不是很難理解.
類庫
import requests from bs4 import BeautifulSoup
有一次用urllib,urllib2發現會遇到各類編碼問題須要本身去解決,特別煩人。而後轉到了requests這個庫,徹底沒有遇到像url那樣噁心的編碼問題,並且不少需求均可以知足,因此後面爬靜態網頁都習慣用這個庫了。
之前仍是蠻喜歡用正則的,此次就學習了下bs4的用法,感受仍是挺容易上手的。具體的實現都不難,都是基礎的爬蟲知識,並且「一個」並無反爬蟲的設定,因此蠻適合初學者的。
用工具方便本身,我以爲這就是本身編程的意義,這讓我很開心。