我用 Python 做了一个轻松爬取各大网站文章并输出为 Markdown 的工具!

前言

大家好,我是「周三不Coding」。

最近摸鱼看技术文章的时候,突然想到了两个需求,想与大家分享一下:

  1. 爬取各大技术网站的文章,转化为 Markdown 格式,防止文章由于不明原因下架。这样可以在本地保存一些高质量文章。
  2. 整理自己过去发布的文章。(我之前写的一些文章并没有在本地备份)

说干就干,我用了几个小时,编写并发布了一个文章爬取工具:Article Crawler,

接下来,我给大家分享一下我的制作过程!

其中包含详细的 README 文档

Github 地址:github.com/ltyzzzxxx/a…

PyPi 地址:pypi.org/project/art…

需求分析与技术选型

对于爬取类的需求来说,我毫不犹豫地选择了 Python 来编写代码,毕竟一提到爬虫,大家第一反应就是 Python。它确实很方便,提供了很多方便快捷的包。

我们首先拆解一下需求,来确定最终需要使用的 Python 包。

  1. 从某个网站中爬取文章,需要定位文章的位置。网站中除了文章信息之外,可能还有推荐信息、作者信息、广告信息等。因此,我们需要将整个网站内容爬取下来,并从中搜索得出文章的内容。
  2. 将 HTML 文章内容转换 Markdown 格式,并输出到本地指定目录中。

对于第一个需求,我们使用 request 与 BeautifulSoup 包。

  • 使用 request 包向指定网站发送请求,获取其 HTML 内容。

  • 使用 BeautifulSoup 包在指定 HTML 内容中,查找对应的文章内容。

    Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库。它能够通过你喜欢的转换器实现惯用的文档导航 / 查找 / 修改文档的方式。Beautiful Soup 会帮你节省数小时甚至数天的工作时间。

对于第二个需求,我们使用 html2text 包。

  • 使用 html2text 包,将指定的 HTML 文章内容,渲染为对应的 Markdown 格式。

总结技术栈如下:

技术栈 作用
request 向指定网站发送请求,获取 HTML 内容
BeautifulSoup (bs4) 快速从 HTML 内容中依据指定条件查找内容
html2text 将指定的 HTML 内容染为 Markdown 格式

实现方案

实现流程图如下:

whiteboard_exported_image (19).png

对于这一系列流程,我将其抽象为一个类 ArticleCrawler

具体代码位于 article_crawler/article_crawler.py 文件中

其初始化 __init__ 方法如下:

def __init__(self, url, output_folder, tag, class_, id=&#
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值