jquery抓取网页内容(如何使用BeautifulSoup库从HTML页面中提取内容中执行?)

优采云 发布时间: 2021-10-26 22:09

  jquery抓取网页内容(如何使用BeautifulSoup库从HTML页面中提取内容中执行?)

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

  什么是网络抓取?

  简单的答案是:并非每个 网站 都有用于获取内容的 API。您可能想从您最喜欢的烹饪中获取食谱网站 或从旅游博客中获取照片。如果没有 API,提取 HTML 或抓取可能是获取内容的唯一途径。我将向您展示如何在 Python 中执行此操作。

  注意:不是所有的网站都喜欢爬行,有些网站可能会被明确禁止。与网站的拥有者确认是否可以爬取。

  如何在 Python 中抓取 网站?

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

  使用请求库提取 HTML 内容。分析 HTML 结构并识别收录我们内容的标签。使用 BeautifulSoup 提取标签并将数据放入 Python 列表中。安装库

  让我们先安装我们需要的库。从 网站 请求 HTML 内容。 BeautifulSoup 解析 HTML 并将其转换为 Python 对象。要为 Python 3 安装这些,请运行:

  pip3 install requests beautifulsoup4

  提取 HTML

  在这个例子中,我会选择抓取网站的技术部分。如果你进入这个页面,你会看到一个带有标题、摘录和发布日期的 文章 列表。我们的目标是创建一个收录这些信息的 文章 列表。

  技术页面的完整网址是:

  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)

  变量数据将收录页面的 HTML 源代码。

  从 HTML 中提取内容

  要从 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> 小发布日期。

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

  蟒蛇:

  上面的代码将提取文章并将它们放入my_data变量中。我正在使用 pprint 来漂亮地打印输出,但您可以在自己的代码中跳过它。将上述代码保存在一个名为 fetch.py​​ 的文件中,然后使用以下命令运行它:

  python3 fetch.py

  如果一切顺利,您应该会看到:

  蟒蛇:

  

[{'excerpt': "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.',

'pub_date': 'Aug 2021',

'title': 'Using variables in Jekyll to define custom content'},

{'excerpt': "In this article, I'll highlight some ideas for Jekyll "

'collections, blog category pages, responsive web-design, and '

'netlify.toml to make static website maintenance a breeze.',

'pub_date': 'Jul 2021',

'title': 'The evolution of ayushsharma.in: Jekyll, Bootstrap, Netlify, '

'static websites, and responsive design.'},

{'excerpt': "These are the top 5 lessons I've learned after 5 years of "

'Terraform-ing.',

'pub_date': 'Jul 2021',

'title': '5 key best practices for sane and usable Terraform setups'},

... (truncated)

  仅此而已!我们用 22 行代码,用 Python 构建了一个网络爬虫。您可以在我的示例存储库中找到源代码。

  结论

  使用 Python 列表中的 网站 内容,我们现在可以用它做很酷的事情。我们可以将其作为 JSON 返回给另一个应用程序,或者使用自定义样式将其转换为 HTML。随意复制并粘贴上面的代码,然后在您最喜欢的 网站 上进行实验。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线