赞
踩
大家好,我是「周三不Coding」。
最近摸鱼看技术文章的时候,突然想到了两个需求,想与大家分享一下:
说干就干,我用了几个小时,编写并发布了一个文章爬取工具:Article Crawler,
接下来,我给大家分享一下我的制作过程!
其中包含详细的 README 文档
对于爬取类的需求来说,我毫不犹豫地选择了 Python 来编写代码,毕竟一提到爬虫,大家第一反应就是 Python。它确实很方便,提供了很多方便快捷的包。
我们首先拆解一下需求,来确定最终需要使用的 Python 包。
对于第一个需求,我们使用 request 与 BeautifulSoup 包。
使用 request 包向指定网站发送请求,获取其 HTML 内容。
使用 BeautifulSoup 包在指定 HTML 内容中,查找对应的文章内容。
Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库。它能够通过你喜欢的转换器实现惯用的文档导航 / 查找 / 修改文档的方式。Beautiful Soup 会帮你节省数小时甚至数天的工作时间。
对于第二个需求,我们使用 html2text 包。
总结技术栈如下:
技术栈 | 作用 |
---|---|
request | 向指定网站发送请求,获取 HTML 内容 |
BeautifulSoup (bs4) | 快速从 HTML 内容中依据指定条件查找内容 |
html2text | 将指定的 HTML 内容染为 Markdown 格式 |
实现流程图如下:
对于这一系列流程,我将其抽象为一个类 ArticleCrawler
。
具体代码位于
article_crawler/article_crawler.py
文件中
其初始化 __init__
方法如下:
def __init__(self, url, output_folder, tag, class_, id=''):
self.url = url
self.headers = {
'user-agent': random.choice(USER_AGENT_LIST)
}
self.tag = tag
self.class_ = class_
self.id = id
self.html_str = html_str
if not os.path.exists(output_folder):
os.makedirs(output_folder)
print(f"{output_folder} does not exist, automatically create...")
self.output_folder = output_folder
url
:指定网站地址
output_folder
:输出目录
tag / class_ / id
:用于定位文章在网站中所处的位置。
举个
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。