抓取网页生成电子书(通过Python和爬虫,可以完成怎样的小工具?|知乎)

优采云 发布时间: 2021-10-05 10:05

  抓取网页生成电子书(通过Python和爬虫,可以完成怎样的小工具?|知乎)

  总有同学问,学了Python基础之后,不知道自己可以做些什么来提高。今天我就用一个小例子来告诉大家通过Python和爬虫可以完成什么样的小工具。

  在知乎上,你一定关注过一些不错的专栏(比如Crossin的编程课堂)。但如果有一天,你最喜欢的受访者在网上被喷,你一怒之下删帖停止更新,你就看不到好内容了。虽然这是小概率事件(没有发生过),但你可以通过将关注的专栏导出到电子书来准备下雨天,这样你就可以离线阅读,而不必担心不小心删除帖子。

  只需要工具和源码的可以拉到文章底部获取代码。

  【最终效果】

  运行程序,输入列的id,即网页地址上的路径:

  之后程序会自动抓取列中的文章,并根据发布时间合并导出为pdf文件。

  【实现思路】

  本方案主要分为三部分:

  抢列文章地址列表

  抓取每篇文章的详细内容文章

  导出 PDF

  1. 获取列表

  在之前的文章

  爬虫必备工具,掌握它就解决一半问题

  如何分析一个网页上的请求在里面有描述。 根据方法,我们可以使用开发者工具的Network功能找出栏目页面的请求来获取详细列表:

  观察返回的结果,我们发现通过sum的值,可以获取到下一个列表请求的地址(相当于页面向下滚动的触发效果),判断是否已经获取到所有的文章。

  而中间就是我们需要的数据。因为可以拼写,所以没有保存在我们的代码中。

  使用 while 循环直到 文章 的所有总和都被捕获并保存在一个文件中。

  2. 抢 文章

  有了文章的所有/,后面的爬取就很简单了。文章主要内容在标签中。

  需要花点功夫的是一些文字处理,比如原页面的图片效果,会添加标签和属性之类的,我们要去掉才能正常显示。

  至此,所有的内容都已经抓取完毕,可以在本地读取了。

  3. 导出 PDF

  为了方便阅读,我们使用 wkhtmltopdf+pdfkit 将这些 HTML 文件打包成 PDF。

  wkhtmltopdf是一个将HTML转PDF的工具,需要单独安装。详情请参阅其官方网站。

  pdfkit 是为此工具打包的 Python 库,可以从 pip 安装:

  使用非常简单:

  这样就完成了整列的导出。

  不仅是知乎的栏目,几乎大部分的信息类型都是网站,通过1.抓取列表2.抓取详细内容采集数据两步。所以这段代码只要稍加修改就可以用于许多其他的网站。只是有些网站需要登录后访问,所以需要在headers中设置cookie信息。另外,不同网站的请求接口、参数、限制都不一样,具体问题还是要具体问题具体分析。

  这些爬虫的开发技巧可以在我们的爬虫实战课中学习。需要的请回复公众号中的实际爬虫

  【源码下载】

  获取知乎的专栏下载器源码,请在公众号(Crossin的编程课堂)回复关键字知乎

  除了代码,还有本专栏打包好的PDF,欢迎阅读分享。

  更多视频课程、问答群等服务,请按号码内回复码操作

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线