第一次在 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 的用法,感觉还是挺容易上手的。
具体的实现都不难,都是基础的爬虫知识,而且“一个”并没有反爬虫的设定,所以蛮适合初学者的。
用工具方便自己,我觉得这就是自己编程的意义,这让我很开心。
1
omoyouo 2016-01-18 21:23:42 +08:00
顶一个
|
2
icedx 2016-01-18 22:03:24 +08:00
赞一个 很有我年轻时写的代码的味道..
|
3
MindPunk 2016-01-18 22:13:56 +08:00
写一个邮件订阅系统?大家直接订阅你不就好了。。。
|
4
nisbme 2016-01-18 22:40:01 +08:00 1
|
5
7emes 2016-01-18 23:29:40 +08:00
加块砖, http://caodan.org/ ,很早就出现的了,大概是 one 一个十几期的时候,可以 rss 订阅。
|
6
l12ab 2016-01-18 23:58:47 +08:00
one 本身就有网页版吧,你分享到微信朋友圈,就是一个链接形式
|
7
SeanChense 2016-01-19 00:26:32 +08:00
不错。
正准备自动爬某个页面然后给我自己发变化通知。 已 star |
8
ETiV 2016-01-19 00:48:00 +08:00 via iPhone
我今天看到韩寒就想起来那张动作片封面来……
|
9
Aixtuz 2016-01-19 01:38:30 +08:00 1
one 的 json api 网上找到过两种:
github 里找到一种, 其中 url 拼接的某些日期要用于获取广告, 所以 url 拼接日期和 返回结果不对应; 新浪博客里找到一种, 比较久远的文章. 不含返回广告部分, 日期与返回结果对应, 只是拼接的是 ip 地址. 好在已经知道了第一种, 直接拿域名替换了. 最后就是这个格式: http://rest.wufazhuce.com/OneForWeb/one/getHpinfo?strDate=2016-01-18 其他关键词: getOneContentInfo getOneQuestionInfo getOneThingInfo |
10
Aixtuz 2016-01-19 01:45:15 +08:00 1
再吐槽一句: 首页 Hpinfo 里的 i 我没有拼错, 和其他页面不同, 偏就是小写字母. 强迫症早已忍不了...
|
11
ryd994 2016-01-19 07:13:27 +08:00
呃……
一个 有 RSS 的 |
12
SpicyCat 2016-01-19 09:37:58 +08:00
|
14
LoliconInside 2016-01-19 09:50:14 +08:00
@ETiV 哈哈哈哈哈哈哈握爪
|