第一次在 V 发代码~觉得还可以的希望给个 star~
地址: https://github.com/xcc3641/pySendOneToEmail
因为现在“一个”的 Android 客户端启动越来越慢,而且很多自己不感兴趣的东西(我只是想看看文章),所以就写了这个小爬虫。它可以在“一个”更新后把我要的内容发到我的邮箱里。
放在云服务器里,所以不用担心电费啊其他问题~
自己配置的是阿里云的服务器,学生特惠 9.9 , Ubuntu 系统。这个系统自带了 Python2.7 环境,所以不用自己手动去安装。
本地是用的 Window10 系统,最好安装下SecureCRSecureFXPortable。远程连接自己的服务器,而且命令行和文件操作会简便很多。
因为“一个”是每天 22 点会更新,所以自己的服务器要做一个定时服务, ubuntu 下自带了Crontab定时任务。
1.加入需要执行的脚本
crontab -e
1 22 * * * 路径 /python 路径 /xxx.py
保存重启 /etc/init.d/cron restart
2.Python 最好写全路径,这是一个坑
3.需要在 root 用户下进行
4.具体的 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 的用法,感觉还是挺容易上手的。
具体的实现都不难,都是基础的爬虫知识,而且“一个”并没有反爬虫的设定,所以蛮适合初学者的。
用工具方便自己,我觉得这就是自己编程的意义,这让我很开心。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.