网页中flash数据抓取(本文讨论如何使用BeautifulSoup库从HTML页面中提取内容)

优采云 发布时间: 2021-12-28 16:15

  网页中flash数据抓取(本文讨论如何使用BeautifulSoup库从HTML页面中提取内容)

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

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

  使用请求库来提取 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

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

  #!/usr/bin/python3

import requests

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

data = requests.get(url)

print(data.text)

  变量 data 将收录

页面的 HTML 源代码。

  从 HTML 中提取内容

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

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

  

Using variables in Jekyll to define custom content

I recently discovered that Jekyll's config.yml can be used to define custom

variables for reusing content. I feel like I've been living under a rock all this time. But to err over and

over again is human.

Aug 2021

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

  让我们使用 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 打印输出。

  总结

  我们可以将其作为 JSON 返回给另一个应用程序,或者使用自定义样式将其转换为 HTML。

  本文地址:Python 中使用 Beautiful Soup 抓取网页 | “Linux 应该这样学”

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线