Python beautifulsoup4解析 数据提取 基本使用

这篇具有很好参考价值的文章主要介绍了Python beautifulsoup4解析 数据提取 基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python beautifulsoup4解析 数据提取 使用介绍&常用示例



前言

Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。


提示:以下是本篇文章正文内容,下面案例可供参考
建议把代码复制到编译工具中运行跑几次,认真看一下输出结果方便更好的理解, beautifulsoup4=4.11.1

二、from bs4 import BeautifulSoup

1.pip install beautifulsoup4

pip install beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.Beautiful用法介绍

2.1 解析html源码创建创建Beautifulsoup对象

from bs4 import BeautifulSoup
web_html = """
<html>
<head>
    <title id="title">The Dormouse's story1</title>
</head>
<body>
    <p class="story">
        <a href="http://example.com/elsie1" class="link11" id="link1">EXI-XZ</a>,
        <a href="http://example.com/elsie2" class="link11" id="link2">Elsie</a>,
        <a href="http://example.com/lacie" class="link22" id="link3">Lacie</a> and
        <a href="http://example.com/tillie" class="link33" id="link4">Tillie</a>;
    </p>
    <ul class="ul_test", id="abc">
        <li class="li_test" href="http://example.com/li">AA</li>
        <li class="li_test" href="http://example.com/li">BB</li>
        <li class="li_test" href="http://example.com/li">CC</li>
    </ul>
    <div class="div_test">
        <p>div模块-p标签</p>
    </div>
</body>
</html>
"""
soup = BeautifulSoup(web_html, 'lxml')  # 解析网页源码创建Beautifulsoup对象 

2.2 beautiful对象的常用属性和方法

web_html = soup.prettify()  # 返回格式化后的源码,str类型
title_tag = soup.title  # 返回源码中第一个title标签(源码),element.Tag类型
print('title_tag:', title_tag, type(title_tag))
title_content = soup.title.string  # 提取title标签的文本, element.NavigableString,下面有多个标签内容则返回None
print('title_content:', title_content, type(title_content))
all_p_content = soup.body.get_text()  # 提取body下面的所有p标签,str类型
print('all_p_content:', all_p_content, type(all_p_content))
a_href = soup.a['href']  # 提取第一个a标签的href属性,str类型
print("a_href:", a_href, type(a_href))

2.3 find、find_all、CSS选择器 根据条件提取元素

# find -- 返回符合查询条件的第一个标签
# 组合条件一
find_group_result = soup.find(name='a', string='EXI-XZ')  # name(标签名)string(标签的文本),element.Tag类型
print('find_group_result:', find_group_result, type(find_group_result))
# 组合条件二,推荐第二种方式,字典方式key,value
find_attrs_result = soup.find(attrs={'class': 'link11', 'id': 'link1'})  # 指定属性,element.Tag类型,
print('find_attrs_result:', find_attrs_result, type(find_attrs_result))
find_attrs_result.get('href')  # 获取该对象的属性href
find_attrs_result.text  # 获取该对象标签的文本,不同于find_attrs_result.string,下面有多个标签会全部返回而不是None
find_ul_result = soup.find(attrs={'class': "ul_test", 'id': 'abc'})
print('ul_tag_result:', find_ul_result.text, type(find_ul_result))  # element.Tag

# find_all -- 返回符合查询条件的所有标签, list类型
find_li_list = soup.find_all(name='li', attrs={'class': "li_test"}, limit=2)  # limit(返回前两个标签)
find_li_list[0].attrs  # 提取标签的所有属性

# CSS选择器 -- list类型
div_tag = soup.select('div,.div_test')  # 取class为"div_test"的div标签,list类型,  #=id   .=class
print('div_tag:', div_tag, type(div_tag))
div_tag = soup.select('div[class="div_test"]')  # 等同于soup.select('div,.div_test')
print('div_tag:', div_tag, type(div_tag))
print("div下p标签的文本:", div_tag[0].select("p")[0].text)  # 取div中的第一个p标签的文本

3.常用代码

import requests
from bs4 import BeautifulSoup
url = "xxxxxxxxxxxxxxxxx"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
response = requests.get(url=url, headers=headers)
web_html = response.text
soup = BeautifulSoup(web_html, 'lxml')  # 解析网页源码创建Beautifulsoup对象

4.对象类型介绍

BeautifulSoup4四大对象种类
bs4.element.Tag 通俗点讲就是HTML中的一个个标签,有很多属性和方法可以更加详细的提取内容
NavigableString 得到了标签源码,通过对象的属性和方法可以提取标签内部文字(.string)和属性(xx['class'])
BeautifulSoup 表示一个文档的全部内容.
Comment 一个特殊类型的NavigableString对象,其输出的内容不包括注释符号。

总结

小洲提示:建议把代码复制到编译工具中运行跑几次,认真看一下输出结果方便更好的理解, beautifulsoup4=4.11.1

以上就是今天要讲的内容,本文仅仅简单介绍了beautifulsoup4解析web源码的使用,而beautifulsoup4提供了大量能使我们快速便捷地处理数据的函数和方法,后续有关于beautifulsoup4的常用代码会在这篇博客中持续更新。
Beautifulsoup4官方文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/文章来源地址https://www.toymoban.com/news/detail-404548.html

到了这里,关于Python beautifulsoup4解析 数据提取 基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 网页解析中级篇:深入理解BeautifulSoup库

    在Python的网络爬虫中,BeautifulSoup库是一个重要的网页解析工具。在初级教程中,我们已经了解了BeautifulSoup库的基本使用方法。在本篇文章中,我们将深入学习BeautifulSoup库的进阶使用。 在使用 find 和 find_all 方法查找元素时,我们可以使用复杂的查找条件,例如我们可以查找

    2024年02月12日
    浏览(32)
  • Python爬虫学习笔记(六)————BeautifulSoup(bs4)解析

    目录 1.bs4基本简介 (1)BeautifulSoup简称 (2)什么是BeatifulSoup? (3)优缺点 2.bs4安装以及创建 (1)安装          (2)导入          (3)创建对象 3.节点定位 (1)根据标签名查找节点 (2)函数         ①find(返回一个对象)         ②find_all(返回一个列表

    2024年02月17日
    浏览(37)
  • python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (三)

    简称:bs4 BeautifulSoup跟lxml 一样,是一个html文档的解析器,主要功能也是解析和提取数据 优缺点 缺点:效率没有lxml的效率高 优点:接口接口人性化,使用方便 延用了css选择器 安装BeautifulSoup 1、安装:pip install bs4 2、导入:from bs4 import BeautifulSoup 3、创建bs4 对象 ① 服务器响

    2024年02月11日
    浏览(38)
  • Python 爬虫:教你四种姿势解析提取数据

    以经典的爬取豆瓣电影 Top250 信息为例。每条电影信息在 ol class 为 grid_view 下的 li 标签里,获取到所有 li 标签的内容,然后遍历,就可以从中提取出每一条电影的信息。 翻页查看url变化规律: start参数控制翻页,start = 25 * (page - 1) 本文分别利用正则表达式、BeautifulSoup、

    2024年01月16日
    浏览(56)
  • urllib+BeautifulSoup爬取并解析2345天气王历史天气数据

    urllib+BeautifulSoup爬取并解析2345天气王历史天气数据 网址:东城历史天气查询_历史天气预报查询_2345天气预报 url构成如下: 基础url:https://tianqi.2345.com/Pc/GetHistory 参数: areaInfo[areaId] 表示的是 某地区的天气编码,这个需要去自己获取。 areaInfo[areaType] 不用管 后面两个参数就是

    2024年02月11日
    浏览(30)
  • Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助。 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步加载、验证码、代理等高阶爬虫技术的爬虫方法。一般而言,基础爬

    2024年02月03日
    浏览(35)
  • 【Python beautifulsoup】详细介绍beautifulsoup库的使用方法,包括安装方式、基本用法、常用方法和技巧,以及结合lxml和parsel的具体使用场景和区别。

    Python beautifulsoup库是一个强大的Web抓取和解析库,它提供了丰富的功能和简单易用的API,可以帮助我们处理HTML和XML文档,从中提取数据,进行数据清洗和处理。beautifulsoup库基于Python标准库中的html.parser模块,同时还可以与第三方解析库lxml和parsel配合使用,提供更高效和灵活的

    2024年02月04日
    浏览(45)
  • Python 爬虫:如何用 BeautifulSoup 爬取网页数据

    在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Python 中最常用的爬虫库之一,它能够帮助我们快速、简单地解析 HTML 和 XML 文档,从而

    2024年02月04日
    浏览(35)
  • python晋江文学城数据分析(一)——爬虫(BeautifulSoup正则)

    学爬虫,拿平常看小说的绿色网站下手。 爬取的数据主要分为两部分,收藏榜的小说信息和小说详情页的部分数据。         通过点击榜单上侧选项(其实也可以用拼音猜一猜),观察url变化,寻找规律。如fw指代范围,fbsj指代发表时间,ycx指代原创性,以此类推。可以

    2024年02月08日
    浏览(33)
  • 【 Python足彩网站赔率数据文件自动下载(Tkinter+BeautifulSoup+Selenium隐藏浏览器界面,双线程)】

    朋友为了分析足彩的实时赔率,需要每隔一段时间自动下载网站上的excel数据。因此开发了这款软件。 总共就3个代码块,以下是完整源代码。 1.第一步 :创建应用程序界面 2第二步 :获所有需要下载的URL并添加到列表。循环列表。 3第三步 :下载Excel文件。因为是无头浏览器

    2024年01月18日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包