『简书追女神助手』实现的功能:你关注的简书作者(女神)更新了文章,程序会第一时间自动点赞❤,另外你的邮箱会马上收到一封邮件通知。如果这个邮箱绑定了微信,微信中就即时通知。
实现步骤:
- 抓取关注作者的文章列表的最后的一篇。
- 把文章URL与记录中的进行比对(第一次记录为空),如果不一样,则是新发表的文章。用Python发送一封邮件,并把文章信息更新到文件记录中。
如果比对相同,就是未更新。程序结束。
-
抓取更新文章中关键值id,构造用于点赞的URL,post方法提交。到这里,就完整实现了简书追女神助手的功能。
-
这段代码要放到服务器上开启定时任务,如果她更新频率高,你的心情急迫,时间可以设得短一点。
最好的优化方法,是把她之前所有文章抓取下来,分析一下更新的时间和频率,针对做好定时任务。
当然,追女神做到这些还不够,快去赤果果(zhen cheng)地留言评论,用力打赏吧。
发送邮件的代码:
def send_mail(title,content):
envelope = Envelope(
from_addr=(u'用于发送的邮箱,我用的QQ邮箱xxx@qq.com'), #发送的邮箱
to_addr=(u'用于接收的邮箱yyy@qq.com'), #接收的邮箱
subject=title,
text_body=content
)
# envelope.add_attachment('/Users/apple/Desktop/shell.png') #发送邮件添加附件,这里没有
# Send the envelope using an ad-hoc connection...
envelope.send('smtp.qq.com', login='xxx@qq.com- 你的qq箱',
password='你的授权码', tls=True)
Python用于发邮件的库比较很多,我这里用的是Envelopes,代码更少,也没有中文乱码的问题,注意邮箱设置要改一下,“设置”--“帐户”,生成授权码,相于当给第三方当密码使用。
点赞的代码:
def post_like(note_url):
resp = requests.post(note_url,headers=headers2)
print resp #提交点赞后返回的结果
这里关键是从文章页面获取点击“喜欢”提交的URL。看下图的分析。
代码:
def from_aritle_get_note(artice_url):
ctx = requests.get(url=artice_url).content
soup = BeautifulSoup(ctx, 'html.parser', from_encoding='utf-8')
mts = soup.find_all('meta',property='al:ios:url')
mts = mts[0]['content']
pid = filter(str.isdigit,str(mts))
post_like_url = 'http://www.jianshu.com/notes/%s/like' % pid
return post_like_url
后面的代码就比较简单了:读写一个文章,用于保存作者最后一篇文章信息,用于核对是不是新发表了文章。从作者主页中抓取文章信息,获取最后发表的一篇文章。
还有其他方式可以实现类似功能的吗?
- 有同学说,关注了作者,APP中本身就有推送消息啊。如果你想这样,就只关注一个可尽能少的的作者,不然推送消息太多,或者使用小号来关注你的女神。
- 还有同学说,可以使用RSS订阅来实现,关注的用户更新了文章,就收到邮件通知。有热心网友帮简书烧制了 RSS,《简书 RSS》 http://jianshu.milkythinking.com/
但是以上这种两种方法受一些限制,也不会及时自动点赞,不如自己撸一段代码实现的那么酷。
以上代码和功能都比较适合初步Python童鞋练习。还可以把来源改为微博,实现微博版的追女神助手。
网友评论