Python爬取知乎日报,推送到kindle
最近刷知乎上瘾,刚好手头有一台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相关推荐
- python爬取微信公众号推送_微信公众号推送信息爬取---python爬虫
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python生成QQ机器人爬取百度文库链接推送好友并生成词云
QQ机器人爬取百度文库链接推送好友并生成词云 一.环境准备 二.实现QQ机器人 1.QQ机器人介绍 2.安装方法 3.实现自己的QQ机器人 三.百度文库内容链接爬取推送好友 代码实现: 思路分析 1. ...
- python爬取知乎热榜了解时事
python爬取知乎热榜了解时事 需求 知乎热榜是我们了解时事的一个重要途径,但是如果我们每天没有那么多时间来刷知乎,但是还是想要了解知乎热榜的话,我们该怎么办呢?在这里,我想到了通过知乎爬虫的手 ...
- python爬取知乎回答并进行舆情分析:爬取数据部分
python爬取知乎回答并进行舆情分析:爬取数据部分 背景 Ajax原理介绍 Request URL分析 json报文结构分析 代码 参考链接 背景 近期导师让我从社交媒体平台(包括微博.知乎.贴吧等 ...
- Python爬取知乎指定问题
Python爬取知乎指定问题回答 记得上周写了个帖子,里面有想对知乎指定问题进行爬取,但知乎的反爬措施还是做得比较好的,想通过正常网页解析的手段去拿到数据是实现不了了,因为人家压根就不给你数据,最后呢 ...
- 如何用python爬取数据_如何使用python爬取知乎数据并做简单分析
原标题:如何使用python爬取知乎数据并做简单分析 一.使用的技术栈: 爬虫:python27 +requests+json+bs4+time 分析工具: ELK套件 开发工具:pycharm 数据 ...
- python爬取知乎回答并进行舆情分析:舆情分析部分
python爬取知乎回答并进行舆情分析:舆情分析部分 背景 生成词云 文本预处理(使用停用词.自定义分词) 统计词频 生成词云 折线图 统计每日回答数 生成折线图 展望 背景 在上一节中,利用爬虫爬取 ...
- 使用Python爬取知网信息
使用Python爬取知网信息 import requests from urllib import request from lxml import etree import re import cs ...
- 用Python爬取知乎上关于程序员的神回复
数据科学俱乐部 中国数据科学家社区 ♚ 作者:强哥,曾供职于摩根士丹利和eBay. 爬取知乎神回复很简单,这篇文章我们就来揭晓一下背后的原理. 知乎神回复都有些什么特点呢?我们先来观察一下 大家看出什 ...
最新文章
- 交叉编译_Golang交叉编译
- Asya And Kittens
- [NLP] 相对位置编码(二) Relative Positional Encodings - Transformer-XL
- 【Python CheckiO 题解】Xs and Os Referee
- GNS3从入门到精通
- 图书馆管理系统怎么做_亚马逊erp管理系统有免费的吗?亚马逊erp管理系统怎么免费做...
- Redis学习---(7)Redis 字符串(String)
- 【报告分享】2020年中国快消品行业KOL内容营销报告.pdf(附下载链接)
- C#笔记 使用自定义事件(含参)
- 终极算法-机器学习和人工智能如何重塑世界:电子书
- Solidity函数vie和pure关键字
- 5G技术演进与核心技术一(笔记)
- 【零基础教学】Unet局域网联机的实现——最基础的Unity联网实现方式(2)
- C语音实现简单的密码登录(简单逻辑)
- carla学习笔记(八)
- 软件自动化测试项目总结,自动化测试总结报告.docx
- SpringCloud---熔断器Hystrix的作用--解决灾难性雪崩效应
- 小陈学JS return语句+break,continue,return的区别
- brother printer 打印机 winform 小工具
- 【恒指早盘分析】期货交易绝非你想的那么简单
热门文章
- 对于网站的用户访问行为的简单分析 - 2
- 谱半径一定大于0_[转载]关于谱半径(spectrum radius)
- Ubuntu/Linux Terraform oci 一键脚本抢购​ 甲骨文Oracle VM.Standard.A1.Flex​ 4个OCPU,24 GB 内存的vps
- 【2013Esri中国用户大会】盘点影像技术三大亮点
- XCTF MISC 新手base64stego解题思路
- Java respa 中文乱码_Retrofit 中文乱码问题的解决
- VS2019+resharper2019.1免激活安装使用教程
- MySQL 取出每个分组中最新的一条数据(ID最大)
- Python学习笔记-实现探测Web服务质量
- 高红梅:第三章 海明威社会身份的定位 第一节 文学梦与作家身份的认同