获取kindle图书资源
2019-02-22 本文已影响0人
alue
小蜜蜂在线 是我经常获取电子书的网站. 这个网站电子书比较多, 每天早八点前可以免费下载3本, 有mobi格式, 能够方便的在kindle上阅读.
之前, 我首先会下载三本电子书到本地, 然后再用邮箱一一推送到kindle中, 比较麻烦. 正好可以利用上一篇python发送邮件可以如此简单--yagmail, 自动化的处理该过程. 目前, 只用运行脚本, 就能自动检测文件夹下的新电子书, 并将其发送给kindle.
import yagmail
import os
import re
import time
from datetime import datetime
def sendToKindle(mobi):
'''
mobi: 字符串, 文件绝对路径
'''
# 获取文件名
file = os.path.basename(mobi)
[name, ext] = os.path.splitext(file)
# http://cn.epubee.com/ 下载的电子书, 书名后面有数字等后缀, 这里先去掉它们
pattern = re.compile(r'[0-9_]+$')
name = re.sub(pattern,'',name)
yag = yagmail.SMTP(user='发送者邮箱', password='授权码',host='smtp.qq.com')
# 邮箱正文,是一个列表
contents = [mobi,]
yag.send(to = 'kindle的邮箱@kindle.cn',subject = name,contents = contents)
def main():
# 获取D:\00-download下的今天的mobi文件名, 这个路径是我chrome下载的默认路径
pattern = re.compile(r'[0-9_]+$')
filePath = "D:\\00-download"
fList = os.listdir(filePath)
fList.sort(key=lambda fn:os.path.getmtime(filePath + "\\" + fn),reverse=True)#按时间排序
for f in fList:
# 先筛选出mobi文件
[name, ext] = os.path.splitext(f)
if ext == '.mobi':
# 获取修改时间,如果是今天的,则发邮件给kindle
mtime = os.path.getmtime(filePath + "\\" + f)
mdate = time.localtime(mtime)
year,month,day = (mdate.tm_year, mdate.tm_mon, mdate.tm_mday)
if (year,month,day) == (datetime.now().year, datetime.now().month, datetime.now().day):
try:
sendToKindle(filePath + "\\" + f)
print(f"已经发送--{re.sub(pattern,'',name)}, 请查收!")
except:
print('something wrong!')
else:
break
if __name__ == "__main__":
main()
下一步要做的事情: 爬取douban想看, 自动检测网络资源, 一旦找到资源则下载该电子书, 发邮件提醒, 并传给kindle.