良许Linux教程网 干货合集 通过Beautiful Soup 在 Python 中抓取网页

通过Beautiful Soup 在 Python 中抓取网页

本文讨论如何使用 Beautiful Soup 库从 HTML 页面中提取内容。提取后,我们将使用 Beautiful Soup 将其转换为 Python 列表或字典。

image-20220525212043298

为了让网络抓取在 Python 中工作,我们将执行三个基本步骤:

使用requests库提取 HTML 内容。

分析 HTML 结构并识别包含内容的标签。

使用 Beautiful Soup 提取标签并将数据放入 Python 列表中。

安装库

首先安装我们需要的库。requests库可以从网站获取 HTML 内容。Beautiful Soup 解析 HTML 并将其转换为 Python 对象。在Python 3中需要安装下面两个库:

[root@localhost ~]# pip3 install requests beautifulsoup4

提取html

本文抓取该网站的技术页面。如果你转到该页面,将看到带有标题、摘录和发布日期的文章列表。我们的目标是创建一个包含该信息的文章列表。

技术页面的完整 URL 是:

https://notes.ayushsharma.in/technology

我们可以使用requests从这个页面获取 HTML 内容:

#!/usr/bin/python3
import requests

url = 'https://notes.ayushsharma.in/technology'

data = requests.get(url)

print(data.text)

变量 data 将包含页面的 HTML 源代码。

从 HTML 中提取内容

为了从 data 中提取我们的数据,我们需要确定哪些标签具有我们需要的内容。

如果你浏览 HTML,会在顶部附近找到此部分:


这是在每篇文章的整个页面中重复的部分。我们可以看到 .card-title 有文章标题, .card-text 有摘录,.card-footer类下面的small标签 有发布日期。

让我们使用 Beautiful Soup 提取这些内容。

#!/usr/bin/python3
import requests
from bs4 import BeautifulSoup
from pprint import pprint

url = 'https://notes.ayushsharma.in/technology'
data = requests.get(url)

my_data = []

html = BeautifulSoup(data.text, 'html.parser')
articles = html.select('a.post-card')

for article in articles:

   title = article.select('.card-title')[0].get_text()
   excerpt = article.select('.card-text')[0].get_text()
   pub_date = article.select('.card-footer small')[0].get_text()

   my_data.append({"title": title, "excerpt": excerpt, "pub_date": pub_date})

pprint(my_data)

上面的代码提取文章并将它们放入 my_data 变量中。我正在使用 pprint 来打印输出。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部