python的bs4模块

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

简介

Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据。Beautiful Soup 语法简单,使用方便,并且容易理解,因此您可以快速地学习并掌握它。

导入解析包

from bs4 import BreautifulSoup
# 创建解析对象
soup = BreautifulSoup(html,'lxml')

而 html.parser 表示解析文档时所用的解析器,此处的解析器也可以是 ‘lxml’ 或者 ‘html5lib’

prettify() 方法用于格式化输出html/xml文档,便于查看网页逻辑

import requests
from bs4 import BeautifulSoup
url = 'https://www.baidu.com/'
resp = requests.get(url)
resp.encoding='utf-8'
soup = BeautifulSoup(resp.text,'lxml')
print(soup.prettify())

如果是外部文档,您也可以通过 open() 的方式打开读取,语法格式如下:

soup = BeautifulSoup(open('baidu.html', encoding='utf8'), 'lxml')
方法 说明
soup.p 直接获取节点
contents 获取所有的子节点(列表)
attrs 获取属性值(字典)
text 获取文本内容
string 获取文本内容
get_text() 获取文本内容

from bs4 import BeautifulSoup
html_1 ='''
<div id="u1">
      <a class="mnav" href="http://news.baidu.com" name="tj_trnews">
       新闻
      </a>
      <a class="mnav" href="https://www.hao123.com" name="tj_trhao123">
       hao123
      </a>
      <a class="mnav" href="http://map.baidu.com" name="tj_trmap">
       地图
      </a>
      <a class="mnav" href="http://v.baidu.com" name="tj_trvideo">
       视频
      </a>
      <a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">
       贴吧
      </a>
      <noscript>
       <a class="lb" href="http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1" name="tj_login">
        登录
       </a>
    </div>
'''
soup = BeautifulSoup(html_1,'lxml')
# print(soup.prettify())
# 获取整个div标签
print(soup.div)
# 获取第一个a标签
print(soup.div.a)
# 获取第一a标签内容
print(soup.div.a.text)
# 查看标签的属性,字典的形式
print(soup.div.a.attrs)
# 查看返回的数据类型
print(type(soup.div))
# 根据属性,获取标签的属性值,返回值为列表
print(soup.div.a['class'])
# 给class赋值
soup.div.a['class']=['web','Site']
print(soup.div.a)

方法选择器

方法选择器 说明
find_all 获取所有
find() 获取第一个
import re
from bs4 import BeautifulSoup
html_1 ='''
<div id="u1">
      <a class="mnav" href="http://news.baidu.com" name="tj_trnews">
       新闻
      </a>
      <a class="mnav" href="https://www.hao123.com" name="tj_trhao123">
       123
      </a>
      <a class="mnav" href="http://map.baidu.com" name="tj_trmap">
       地图
      </a>
      <a class="mnav" href="http://v.baidu.com" name="tj_trvideo">
       视频
      </a>
      <a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">
       贴吧
      </a>
      <noscript>
       <a class="lb" href="http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1" name="tj_login">
        登录
       </a>
    </div>
'''
soup = BeautifulSoup(html_1,'lxml')
# 查找第一个标签
print(soup.find('a'))
# 查找多个标签
print(soup.find('a','input'))
# 通过属性名进行查找
print(soup.find_all(class_='mnav'))
print(soup.find_all(attrs={'class':'mnav'}))
print(soup.find_all('a',class_='mnav'))
# 通过文本内容进行查找
print(soup.find_all(text='视频'))
# 通过匹配内容获取内容
print(soup.find_all(text=re.compile('\d+')))

css选择器

方法 说明
select(‘q’) 节点选择
select(‘.类名’) 类选择器
select(‘#id名’) id选择器
select(‘p[属性名=’‘属性值]’) 属性选择器
select(‘div a’) 层级选择器(后代选择器)
select(div > p ) 层级选择器(子代选择器)
select(‘div,p’) 层级选择器(同时选择器)
import re
from bs4 import BeautifulSoup
html_1 ='''
<div id="u1">
      <a class="mnav" href="http://news.baidu.com" name="tj_trnews">
       新闻
      </a>
      <a class="mnav" href="https://www.hao123.com" name="tj_trhao123">
       123
      </a>
      <a class="mnav" href="http://map.baidu.com" name="tj_trmap">
       地图
      </a>
      <a class="mnav" href="http://v.baidu.com" name="tj_trvideo">
       视频
      </a>
      <a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">
       贴吧
      </a>
      <noscript>
       <a class="lb" href="http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1" name="tj_login">
        登录
       </a>
    </div>
'''
soup = BeautifulSoup(html_1,'lxml')
# 获取所有的a标签
print(soup.select('a'))
# 类选择器,获取类名为 mnav的标签
print(soup.select('.mnav'))
# id 选择器 ,获取类名为'ul'的所有的标签
print(soup.select('#ul'))
# 属性选择器 获取所有name 属性为tj_trhao123
print(soup.select('p[name=tj_trhao123]'))
# 层级选择器 (后代选择器)
print(soup.select('div a'))
# 层级选择器(子代选择器)
print(soup.select('div>a'))
# 层级选择器(同时选择)
print(soup.select('div,a'))

本人的理解:如有不正确或者不恰当的地方欢迎各位大佬进行子代选择器:只选择自己的亲儿子不是亲儿子不选
后代选择器:不管是不是儿子只要是他的后代就都搂上
同时选择两个标签都要

个人笔记仅供参考文章来源地址https://www.toymoban.com/news/detail-470642.html

到了这里,关于python的bs4模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python爬虫技术系列-02HTML解析-BS4

    参考连接: https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/# http://c.biancheng.net/python_spider/bs4.html 2.1.1 Beautiful Soup安装 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据。Beautiful Soup 语法简单,使用方便,并且容易理解,

    2024年02月05日
    浏览(28)
  • python爬虫数据解析xpath、jsonpath,bs4

    解析数据的方式大概有三种 xpath JsonPath BeautifulSoup 打开谷歌浏览器扩展程序,打开开发者模式,拖入插件,重启浏览器,ctrl+shift+x,打开插件页面 安装在python环境中的Scripts下边,这里就是python库的位置,例如我的地址为:E:pythonpython3.10.11Scripts 解析本地文件etree.parse( \\\'xx.

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

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

    2024年02月17日
    浏览(38)
  • python---------bs4爬取数据的一种神器

     欢迎小可爱们前来借鉴我的gtieehttps://gitee.com/qin-laoda Beautiful Soup的简介 解析⼯具对⽐ BeautifulSoup的基本使⽤ 解析器 搜索⽂档树 CSS常⽤选择器介绍 select和css选择器提取元素 _______________________________________________ 前面我已经介绍了正则表达式,下面我们来介绍bs4 Beautiful Soup是py

    2024年02月09日
    浏览(31)
  • Python爬虫之Requests库、BS4解析库的下载和安装

    一、Requests库下载地址 requests · PyPI 将下载的.whl文件放在Script目录下  win+r 输入cmd 进入windows控制台 进入到Scripts目录 输入pip3.10 install requests-2.28.1-py3-none-any.whl(文件的名称) 出现Successful install即安装成功  二、BS4解析库的下载和安装 进入到scripts目录 pip install bs4 由于 BS4

    2024年02月05日
    浏览(30)
  • Python中bs4的soup.find()和soup.find_all()用法

    我们在使用python对网页爬虫的时候,经常会得到一些html数据,因此我们就会利用soup.find()和soup.find_all()方法来筛选出想要的数据。  1.1利用name来查找 代码如下:  结果如下: h1 class=\\\"item\\\" id=\\\"x1\\\"蔡x坤/h1 1.2利用属性attrs来寻找 代码如下: 结果如下:  div class=\\\"item\\\" id=\\\"x3\\\" span你干

    2024年03月20日
    浏览(30)
  • 【用Vscode实现简单的python爬虫】从安装到配置环境变量到简单爬虫以及python中pip和request,bs4安装

    第一步:安装python包  可以默认,也可以选择自己想要安装的路径 python下载资源链接: Download Python | Python.org 第二步: 配置python环境变量,找到我的电脑-属性-高级-环境变量 找到python,新增 然后将刚刚安装的路径配置到path路径下: 特别注意,配置了环境变量后要进行重启电

    2024年02月15日
    浏览(38)
  • 解析库bs4的使用

    安装: pip3 install Beautifulsoup4 1.bs4遍历文档树 bs4:解析xml格式的模块,从xml中找想要的数据。 html是xml的一种,解析html,使用requests返回的数据,可能是json、html、文件,再使用bs4解析html格式。 用法: 注:lxml比html.parser速度块,但是需要安装lxml模块( pip3 install lxml ) 2.bs4搜

    2024年02月12日
    浏览(31)
  • Python爬虫|基础知识点详细汇总(requests、urllib、re、bs4、xpath、PyQuery、jsonpath、多线程、协程、数据保存、selenium)

    1. 请求数据 ① requests (1) 基本使用 参数 对响应内容的操作 (2) Requests进阶:使用Session 为什么要用 Session? Session代表服务器与浏览器的一次会话过程,Session对象存储了特定用户会话所需的信息 例如:一定时间内记录账号密码 (自动登录) 可以加快 requests请求速度 需要客户端登录的

    2023年04月08日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包