使用 Beautiful Soup 在 Python 中抓取网页

如何使用 Beautiful Soup 爬取网页内容? 除了 find_all() 方法,Beautiful Soup 还提供了很多其他方法来查找网页内容,比如 find() 方法可以查找第一个符合条件的元素,select() 方法可以使用 CSS 选择器来查找元素等。可以参考 Beautiful Soup 的文档了解更多信息。在这段代码中,我们使用 requests 库发送 HTTP 请求并获取网页内容,然后使用 Beautiful Soup 解析器解析网页内容。接下来,我们使用 find_all() 方法查找所有 p 标签的内容,并打印出来。 阅读详情
本文讨论如何使用 Beautiful Soup 库从 HTML 页面中提取内容。提取后,我们将使用 Beautiful Soup 将其转换为 Python 列表或字典。

为了让网络抓取在 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,会在顶部附近找到此部分:

<div class="col">
  <a href="/2021/08/using-variables-in-jekyll-to-define-custom-content" class="post-card">
    <div class="card">
      <div class="card-body">
        <h5 class="card-title">Using variables in Jekyll to define custom content</h5>
        <small class="card-text text-muted">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.</small>
      </div>
      <div class="card-footer text-end">
        <small class="text-muted">Aug 2021</small>
      </div>
    </div>
  </a>
</div>

这是在每篇文章的整个页面中重复的部分。我们可以看到 .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 来打印输出。

总结

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

本文地址:使用 Beautiful Soup 在 Python 中抓取网页 | 《Linux就该这么学》

Python网页抓取入门:Beautiful Soup实战指南 网页抓取是将HTML页面中的结构化信息提取为可用数据的技术,其核心原理在于HTTP请求获取源码后,通过HTML解析器重建文档对象模型(DOM)树并定位目标节点。Beautiful Soup作为轻量级解析器,凭借高容错性、易调试性和对静态HTML的强适配能力,在Python爬虫生态中承担着关键的数据提取角色。它不处理网络请求,需配合Requests库构成完整链路,适用于电商比价、招聘数据采集、政策文件监控等中小规模自动化场景。本文聚焦于Beautiful Soup 4在Python 3环境下的工程化落地,覆盖 阅读详情

相关推荐

Python网页抓取入门:用Beautiful Soup解析静态HTML

网页抓取是数据采集的基础技术,核心在于从HTML源码中提取结构化信息。Beautiful Soup作为轻量级HTML/XML解析器,基于树形DOM模型实现高容错、易读性强的节点遍历与定位,其原理不依赖JavaScript执行,专精于静态页面内容提取。相比Selenium(浏览器自动化)和Scrapy(全功能框架),它以低学习成本、高稳定性支撑教学演示、业务分析及中小规模数据中台建设等场景。本文聚焦Python 3环境下Beautiful Soup 4的实战配置与解析逻辑,覆盖requests请求、lxml解

weixin_34326179的博客 436

Python beautiful soup解析html获得数据

1. 用beautiful soup解析网页的HTML的信息 https://blog.csdn.net/i_chaoren/article/details/63282877 1.1 BeautifulSoup的安装及介绍 官方给出的几点介绍: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要...

liugaoxingliushi的专栏 2万+

python网页抓取-urllib、Beautiful Soup-并生成表格

re.finditer 在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。clean_text = re.sub(r'\W+', ' ', text) #将所有匹配\W+的部分替换为空格字符串,去除所有非字母数字字符。re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None.单个匹配模式:pattern = re.compile(r'\d+') # 查找数字。#\W+找到了,,.三个符合的匹配,三个标点三刀切成了四块,最后一个是''

chang_jinling的专栏 953

Python 操作BeautifulSoup4(爬取网页信息)

BeautifulSoup 是一个库,可以很容易地从网页抓取信息。它位于 HTML 或 XML 解析器之上,提供用于迭代、搜索和修改解析树的 Pythonic 习惯用法

感谢关注-最近在编写开源的自动化测试框架还没整理完 3096

使用Beautifulsouppython网络爬虫

一、python数据爬虫简介1.爬虫介绍  爬虫,即网络爬虫,我们可以理解为在网络上爬行的蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到想要的资源,就会抓取下来。想抓取什么?这个由我们来控制它。  比如我们想抓取一个网页上面的内容,在这个网中就要有一条道路,其实就是指向网页的地址或者超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这个蜘蛛来说触手...

独孤易郎的博客 957

爬虫基础02—Beautiful Soup

1. 什么是Beautiful Soup 简单来说,Beautiful Souppython的一个库,最主要的功能是从网页抓取数据。官方解释如下: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个

m0_55196097的博客 1124

PythonBeautiful Soup高效进行网页数据抓取

Beautiful SoupPython开发者提供了一种强大且简单的方法进行网页数据抓取Beautiful Soup官方文档网络爬虫与数据解析教程。

dsndnwfk的博客 537

scrapy python 解析网页_python Beautiful Soup 抓取解析网页

Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping.总之就是一个解析xml和html之类的库,用着还算顺手。下面来介绍下使用pythonBeautiful Soup 抓取一个网页上的PM2.5数据。这个网站上有相应的PM2.5数据,他们在几个地方布置的有监测器...

weixin_39655689的博客 198

Python网页抓取本质:Beautiful Soup DOM层解析实战

网页抓取本质上是结构化信息提取工程,核心在于理解HTML的DOM树结构与数据物理位置。Beautiful Soup作为轻量级HTML解析器,专精于DOM层语义化解析,依托标签、属性和层级关系实现高鲁棒性数据定位,显著优于正则表达式的脆弱匹配。其技术价值体现在开发效率高、维护成本低、学习曲线平缓,适用于电商比价、舆情采集、学术元数据整理等中小规模公开数据获取场景。本文聚焦DOM层解析原理,结合requests发包与lxml解析器选型,详解find/select查找策略、get_text文本清洗、安全属性访问及

weixin_34226706的博客 587

文章五:Python 网络爬虫实战:使用 Beautiful Soup 和 Requests 抓取网页数据

Python中,可以使用。在实际应用中,可以尝试实现更复杂的功能,如自动翻页、数据清洗和存储、分布式爬取等。数据清洗和分析:对抓取到的数据进行清洗、整理和分析,使用Pandas、NumPy等库进行数据处理,使用Matplotlib、Seaborn等库进行数据可视化。遵守爬虫道德规范:在编写网络爬虫时,要遵守爬虫道德规范和网站的robots.txt文件规定,避免对目标网站造成过大的访问压力。数据存储:将抓取到的数据存储到数据库中,如SQLite、MySQL、MongoDB等,方便进一步处理和分析。

斌擎科技 1542

如何使用 PythonBeautiful Soup 抓取任何网站(动态网页

我们现在将学习如何处理动态网页或有很多功能的网页,而不仅仅是 HTML/CSS。这些页面用beautifulsoup 爬取比较棘手,因为有时代码发生在服务器端,而beautifulsoup 需要让浏览器运行它。 如果有一种方法可以让我们编写代码并让我们的代码假装它是浏览器,那岂不是很好?……恰好,这正是本文要讨论的内容! 现在,我第一次在这篇文章中读到了这一点,并且我一直在这篇文章中更专注于确切的实现,因此有关更多详细信息,请务必查看! 1. 下载 Chrome 或 Firefox 目前我所知道的只

lyfwx的博客 1295

Python网页抓取工具Beautiful Soup面面观!

Beautiful Souppython的一个库,最主要的功能是从网页抓取数据。提供一些简单的、python式的函数,用来处理导航、搜索、修改分析树等功能。 Beautiful Soup是一个工具箱,通过解析文档为用户提供需要抓取的数据。因为简单,所以不需要多少代码,就可以写出一个完整的应用程序。 Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转

中科院计算所培训中心 486

运用BeautifulSoup抓取网页的链接

运用BeautifulSoup抓取网页的链接

ytfhjhv的博客 1704

python beautifulsoup抓取网页内容_利用PythonBeautiful Soup抓取网页内容

利用PythonBeautiful Soup抓取网页内容Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏Python 3中提供了url打开模块urllib.request和HTML的解析模块html.parser模块。但是html.parser模块的功能比较简单,很难满足现今解析网页内容的需求。Beautiful Soup 4是一个功能非...

weixin_33355290的博客 302

2017.08.11 Python网络爬虫实战之Beautiful Soup爬虫

1.与Scrapy不同的是Beautiful Soup并不是一个框架,而是一个模块;与Scrapy相比,bs4中间多了一道解析的过程(Scrapy是URL返回什么数据,程序就接受什么数据进行过滤),bs4则在接收数据和进行过滤之间多了一个解析的过程,根据解析器的不同,最终处理的数据也有所不同,加上这一步骤的优点是可以根据输入数据的不同进行针对性的解析;同一选择lxml解析器; 2...

a18946983682的博客 198

Python 网络爬虫笔记3 -- Beautiful Soup

Python 网络爬虫笔记3 – Beautiful SoupPython 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。 课程链接:Python网络爬虫与信息提取 参考文档: Requests库官方文档 一、Beautiful Soup 库安装 介绍: Beautiful Soup库主要是用来处理使用requests库获得的HTM...

Wang_Jiankun的博客 1742

python听课笔记-网络爬虫

听课笔记,中国大学mooc 《Python语言基础与应用》陈斌 1. 网络爬虫 从互联网中,尤其是网页中自动化的收集和处理信息的这样的过程叫做网络爬虫。 2. 搜索引擎蜘蛛spider (1)爬虫是按照一定规则,自动地提取并保存网页中信息的程序。 (2)通过向网站发起请求获取资源,提取其中有用的信息 3. requests库 (1)python实现的一个简单易用的HTTP库 支持HTTP持久连接和连接池、SSL证书验证、cookies处理、流式上传等 (2)向服务器发起请求并获取响应,完成

qq_33782655的博客 952

网页数据解析与爬取----Beautiful Soup

网页数据解析与提取----Beautiful Soup

weixin_45960356的博客 1940
上一篇: 一些重要的 XML DOM 方法概述
下一篇: Apache 记录请求响应时间日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值