博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python可以做哪些好玩的事之将喜欢的博客整理成pdf
阅读量:5914 次
发布时间:2019-06-19

本文共 2098 字,大约阅读时间需要 6 分钟。

最近在学习ETL,于是在天善关键词搜索,光看目录就已经觉得很牛逼了~ <数据仓库设计、ETL设计框架>等等。作为一个爱学习的人,看到这么多有内涵的博客,当然想学习新技能**(flag+1)**,但是我更习惯在手机上浏览,如果我想在手机上看,网页端显然是不太方便的,所以果断转换成pdf存一份(说干就干)

1.采集数据

有一段时间没有在博客中分析了,今天就不**(luo)(li)(luo)(suo)**再头来一遍。

  • chrome浏览器右键检查,在弹出窗口中选择network,这时点击我们想要查看的,天善社区的博客列表显然是972这个,有的时候链接不一定是在XHR分类下,具体网页我们要具体分析。

  • 点击972,查看RequestURL,复制这个链接打开,发现获得的内容和我们当前点开的链接一样,此时我们就大工告成了一半。
import requestsurl = 'https://ask.hellobi.com/blog/biwork/972'my_headers = {    "Accept-Language":"zh-CN,zh;q=0.9",    "Host":"ask.hellobi.com",    "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"}r = requests.get(url=url, headers=my_headers)print(r.content)复制代码

写到这以为完成了一半,那就大错特错了,既然我们想将整个目录都转换为pdf,那么只采集一篇怎么能行,这里我们就需要采集所有的文章地址。

天善博客社区提供 ,这对我们的提取所有的链接提供了便利,所以下一步我们就来采集这些链接。

  • 代码
import requestsfrom lxml import etreemap_url = 'https://ask.hellobi.com/blog/biwork/sitemap/'map_headers = {    "Host": "ask.hellobi.com",    "Upgrade-Insecure-Requests": "1",    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",}rel = requests.get(url=map_url, headers=map_headers).contenthtml = etree.HTML(rel)datas = html.xpath('//div[@class="col-md-12"]')list_url = []for data in datas[0]:    blog_urls = data.xpath('./li/a/@href')    print(blog_urls)复制代码

2.将网页转换为pdf

既然要转换pdf,我们就需要使用一个神器。 生成PDF时会自动根据你在HTML页面中的标签生成树形目录结构,同时也可以在通过相应的函数设置将网页中的指定部分转换为pdf。

  • 终端输入命令
pip install wkhtmltopdfpip install pdfkit复制代码

匹配查看网页html信息,找出作者,标题,作者

soup = BeautifulSoup(result, 'html.parser')body = soup.find_all(class_='message-content')复制代码
  • 写入html文件
# 将标题加入正文居中center_title = soup.new_tag('center')title_tag = soup.new_tag('h1')title_tag.string = titlecenter_title.insert(1, title_tag)html = str(body)print(html)html = html_template.format(content=html)html = html.encode("utf-8")f_name = ".".join([str(index), "html"])with open(f_name, 'wb') as f:     f.write(html)     htmls.append(f_name)复制代码
  • 将html文件合并为pdf
pdfkit.from_file(htmls, user_name + "的文章合辑.pdf", options=options)复制代码
  • 执行完毕 pdf效果

大功告成,我们可以愉快的把想看的博客转换成pdf了。 完整代码已上传.

转载地址:http://odwvx.baihongyu.com/

你可能感兴趣的文章
python-url显示方法
查看>>
响应式开发网站
查看>>
细说JS数组
查看>>
Adaptive Execution让Spark SQL更高效更好用
查看>>
W3C官方推荐使用新发布的HTML5.2
查看>>
如何应对大促?看京东核心中间件团队的高可用实践指南
查看>>
F# 2017回顾
查看>>
C# 7.1、7.2特性追踪
查看>>
苏宁的Node.js实践:不低于Java的渲染性能、安全稳定迭代快
查看>>
重提敏捷已死
查看>>
监控SRE的黄金信号
查看>>
Jenkins将致力于提升稳定性、易用性和云原生兼容性
查看>>
Entity Framework 6.3 和EF Core 3.0路线图
查看>>
Windows 10:微软的十亿设备野心
查看>>
WebStorm 10支持TypeScript 1.4到JavaScript的实时编译
查看>>
Gremlin发布面向混沌实验的应用级故障注入(ALF)平台
查看>>
Linus发布Linux 5.0 rc1版本,为原来4.21版本
查看>>
通用Windows平台应用程序开始恢复Win32功能
查看>>
CodeOne 主题演讲:Java,未来已来
查看>>
微软宣布支持基于虚拟机的Azure IOT Edge服务
查看>>