最近刷知乎上瘾,刚好手头有一台kindle,搞一波事情。

1.分析页面

知乎日报 的网页端结果比较清晰,每篇的文章的链接都在 link-button  这个 a 标签中。用requests + BeautifulSoup 库可以比较轻松的解析。

import requests
import re
from bs4 import BeautifulSoup
import os
import os.path
import pdfkit
from  save_as_pdf import  save_pdf
from os_test import send_emaildef __init__(self):self.home_url = 'http://daily.zhihu.com'self.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'}def home_html(self):content = requests.get(self.home_url,headers = self.headers)all_href = BeautifulSoup(content.text,'html5lib').find_all('a',class_ = 'link-button')for href in all_href:url = self.home_url + href['href']self.story_html(url)

2.保存页面到本地

很多答案都有图片,所以保存为txt文件答案会不完整,这里选择直接保存为pdf文件,关于pdf有很多第三方库,这里主要用了 pdfkit 这个库,关于这个库的使用可以参考官方文档.可以直接通过网址制作pdf文件。

import pdfkit
import osdef save_pdf(url,path):os.chdir(r'G:\python\zhihu\ribao\content')file_name = str(path) + '.pdf'if os.path.exists(file_name):passelse:print(file_name)pdfkit.from_url(url,file_name)

3.推送文件至kindle

  • kindle可以由邮件推送或usb传输,这里模拟通过邮件推送。
  • 通过邮件推送时,将邮件标题设置为‘convert’ ,amazon云端就会自动将pdf格式转换,但是文件大小不能超过50mb
  • kindle的邮件推送就是由绑定的邮箱发送相应的附件。
  • 关于kindel邮箱的绑定可以参考amazon的帮助页面
  • Python 内置了对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。可以参考廖雪峰的博客
  • 不同邮箱的smtp设置不同,这里以qq邮箱为例
import os.path
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email import encoders_user = "123123@qq.com"
_pwd  = "********"
_to   = "******@kindle.cn"def send_email():path = r'G:\python\zhihu\ribao\content'for file in os.listdir(path):file_path = os.path.join(path,file)msg = MIMEMultipart()msg['Subject'] = 'convert'  #邮件标题msg['From'] = _user #显示发件人msg['To'] = _to #接收邮箱attfile = file_pathbasename = os.path.basename(file_path) print(basename)fp = open(attfile,'rb')att = MIMEText(fp.read(),'base64','gbk')att['Content-Type'] = 'application/octer-stream'att.add_header('Content-Disposition', 'attachment',filename=('gbk', '', basename))encoders.encode_base64(att)msg.attach(att)s = smtplib.SMTP_SSL("smtp.qq.com", 465,timeout = 30)#连接smtp邮件服务器,qq邮箱端口为465s.login(_user, _pwd)#登陆服务器s.sendmail(_user, _to, msg.as_string())#发送邮件s.close()

记得关掉飞行模式,连接上网络(逃 ..
之后就可以在kindle上看日报啦~~

Python爬取知乎日报,推送到kindle相关推荐

  1. python爬取微信公众号推送_微信公众号推送信息爬取---python爬虫

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  2. python生成QQ机器人爬取百度文库链接推送好友并生成词云

    QQ机器人爬取百度文库链接推送好友并生成词云 一.环境准备 二.实现QQ机器人 1.QQ机器人介绍 2.安装方法 3.实现自己的QQ机器人 三.百度文库内容链接爬取推送好友 代码实现: 思路分析 1. ...

  3. python爬取知乎热榜了解时事

    python爬取知乎热榜了解时事 需求 ​ 知乎热榜是我们了解时事的一个重要途径,但是如果我们每天没有那么多时间来刷知乎,但是还是想要了解知乎热榜的话,我们该怎么办呢?在这里,我想到了通过知乎爬虫的手 ...

  4. python爬取知乎回答并进行舆情分析:爬取数据部分

    python爬取知乎回答并进行舆情分析:爬取数据部分 背景 Ajax原理介绍 Request URL分析 json报文结构分析 代码 参考链接 背景 近期导师让我从社交媒体平台(包括微博.知乎.贴吧等 ...

  5. Python爬取知乎指定问题

    Python爬取知乎指定问题回答 记得上周写了个帖子,里面有想对知乎指定问题进行爬取,但知乎的反爬措施还是做得比较好的,想通过正常网页解析的手段去拿到数据是实现不了了,因为人家压根就不给你数据,最后呢 ...

  6. 如何用python爬取数据_如何使用python爬取知乎数据并做简单分析

    原标题:如何使用python爬取知乎数据并做简单分析 一.使用的技术栈: 爬虫:python27 +requests+json+bs4+time 分析工具: ELK套件 开发工具:pycharm 数据 ...

  7. python爬取知乎回答并进行舆情分析:舆情分析部分

    python爬取知乎回答并进行舆情分析:舆情分析部分 背景 生成词云 文本预处理(使用停用词.自定义分词) 统计词频 生成词云 折线图 统计每日回答数 生成折线图 展望 背景 在上一节中,利用爬虫爬取 ...

  8. 使用Python爬取知网信息

    使用Python爬取知网信息 import requests from urllib import request from lxml import etree import re import cs ...

  9. 用Python爬取知乎上关于程序员的神回复

    数据科学俱乐部 中国数据科学家社区 ♚ 作者:强哥,曾供职于摩根士丹利和eBay. 爬取知乎神回复很简单,这篇文章我们就来揭晓一下背后的原理. 知乎神回复都有些什么特点呢?我们先来观察一下 大家看出什 ...

最新文章

  1. 交叉编译_Golang交叉编译
  2. Asya And Kittens
  3. [NLP] 相对位置编码(二) Relative Positional Encodings - Transformer-XL
  4. 【Python CheckiO 题解】Xs and Os Referee
  5. GNS3从入门到精通
  6. 图书馆管理系统怎么做_亚马逊erp管理系统有免费的吗?亚马逊erp管理系统怎么免费做...
  7. Redis学习---(7)Redis 字符串(String)
  8. 【报告分享】2020年中国快消品行业KOL内容营销报告.pdf(附下载链接)
  9. C#笔记 使用自定义事件(含参)
  10. 终极算法-机器学习和人工智能如何重塑世界:电子书
  11. Solidity函数vie和pure关键字
  12. 5G技术演进与核心技术一(笔记)
  13. 【零基础教学】Unet局域网联机的实现——最基础的Unity联网实现方式(2)
  14. C语音实现简单的密码登录(简单逻辑)
  15. carla学习笔记(八)
  16. 软件自动化测试项目总结,自动化测试总结报告.docx
  17. SpringCloud---熔断器Hystrix的作用--解决灾难性雪崩效应
  18. 小陈学JS return语句+break,continue,return的区别
  19. brother printer 打印机 winform 小工具
  20. 【恒指早盘分析】期货交易绝非你想的那么简单

热门文章

  1. 对于网站的用户访问行为的简单分析 - 2
  2. 谱半径一定大于0_[转载]关于谱半径(spectrum radius)
  3. Ubuntu/Linux Terraform oci 一键脚本抢购​ 甲骨文Oracle VM.Standard.A1.Flex​ 4个OCPU,24 GB 内存的vps
  4. 【2013Esri中国用户大会】盘点影像技术三大亮点
  5. XCTF MISC 新手base64stego解题思路
  6. Java respa 中文乱码_Retrofit 中文乱码问题的解决
  7. VS2019+resharper2019.1免激活安装使用教程
  8. MySQL 取出每个分组中最新的一条数据(ID最大)
  9. Python学习笔记-实现探测Web服务质量
  10. 高红梅:第三章 海明威社会身份的定位 第一节 文学梦与作家身份的认同