bs4的基本使用

    • 下载
    • 基本使用
    • 标签定位
    • 标签属性定位
    • 选择器定位
    • 数据的提取

下载

pip install bs4
pip install lxml

基本使用

from bs4 import BeautifulSoup
#1.创建一个BeautifulSoup的工具对象,然后把即将被解析的页面源码数据加载到该对象中#参数1:被解析的页面源码数据#参数2:固定形式的lxml(一种解析器)
soup = BeautifulSoup(fp,'lxml')

标签定位

title_tag = soup.title
p_tag = soup.div
print(p_tag )

查找到html源码的第一个div标签
在这里插入图片描述

标签属性定位

soup.find(tagName,attrName='value')
tags = soup.find_all('a',class_='du')

`

第二个参数可以是class_ 和 id
find_all是可以获取全部
find只查找一个


#注意:find只可以定位满足要求的第一个标签
#定位到了class属性值为song的div标签
div_tag = soup.find('div',class_='song')
print(div_tag )
print("===========================")
#定位到了id的属性值为feng的a标签
a_tag = soup.find('a',id='feng')
print(a_tag )

在这里插入图片描述

选择器定位

#常用的选择器:class选择器(.class属性值)  id选择器(#id的属性值)
tags = soup.select('#feng') #定位到id的属性值为feng对应的所有标签
tags = soup.select('.du') #定位到class属性值为du对应的所有标签
#层级选择器:>表示一个层级  一个空格可以表示多个层
tags = soup.select('.tang > ul > li > a')
tags = soup.select('.tang a')
print(tags)

数据的提取

#tag.string:只可以将标签直系的文本内容取出
#tag.text:可以将标签内部所有的文本内容取出
tag = soup.find('a',id='feng')
content = tag.stringdiv_tag = soup.find('div',class_='tang')
content = div_tag.text#方式2:提取标签的属性值 tag['attrName']
img_tag = soup.find('img')
img_src = img_tag['src']
print(img_src)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32嵌入式系统设计与开发】——6矩阵按键应用(4x4)

这里写目录标题 一、任务描述二、任务实施1、SingleKey工程文件夹创建2、函数编辑(1)主函数编辑(2)LED IO初始化函数(LED_Init())(3)开发板矩阵键盘IO初始化(ExpKeyBordInit())&…

【管理咨询宝藏56】大型德企业务战略规划报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏56】大型德企业务战略规划报告 【格式】PDF 【关键词】战略规划、商业分析、管理咨询 【核心观点】 - 这是一份非常完整的知名德企在华业务战略…

7-Zip 23.00 beta以上版本的压缩包兼容性问题

7-Zip 23.00 beta加入了ARM64 filter,7-Zip 24.02 beta加入了RISCV filter,这两个filter不能在之前的版本解压,这两个filter目前只适用于ARM64/RISCV的扩展名是exe/dll的可执行文件,其中ARM64的exe/dll目前比较常见,RI…

【Linux实践室】Linux用户管理实战指南:新建与删除用户操作详解

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux创建用户命令2.1.1 知识点讲解2.1.2 案…

基于python+vue大学生兼职管理系统flask-django-php-nodejs

本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于大学生兼职管理这一方…

485问题汇总

485问题汇总 485 通信波形没有负电压 问题描述:设备在没有外设的时候通信波形是正常的,即5V可以出来,在连接上设备后,设备的通信波形的-5V会随着设备的增多,电压会慢慢上升。当设备连接到24台设备后,485总…

MySQL下载及安装过程

MySQl 5.7 安装图解 目录 MySQl 5.7 安装图解 第一步 安装包 第二步 Mysql协议 第三步 安装前检查 第四步 安装 第五步 产品配置 第六步 安装完成 第一步 安装包 双击安装包文件 进行安装 第二步 Mysql协议 同意Mysql协议 , 选择 Server Only安装Mysql服务器即可 …

数据结构(三)复杂度的深层次剖析

之前发布了数据结构(一),很多同学反响不够清晰,那今天就发一篇对复杂度专题的博客,希望对大家理解复杂度提供一些帮助。 时间复杂度 我们先来一个理解一个复杂度,二分查找的复杂度(之前写过二…

牛客NC101 压缩字符串(一)【简单 模拟 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/c43a0d72d29941c1b65c857d8ac9047e 思路 直接模拟参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值…

备考ICA----Istio实验4---使用 Istio 进行金丝雀部署

备考ICA----Istio实验4—使用 Istio 进行金丝雀部署 上一个实验已经通过DestinationRule实现了部分金丝雀部署的功能,这个实验会更完整的模拟展示一个环境由v1慢慢过渡到v2版本的金丝雀发布. 1. 环境清理 kubectl delete gw/helloworld-gateway vs/helloworld dr/helloworld…

VS2017 remote debugger实现在线调试note

前言: 做为一个程序员, 必备的技能就是代码调试了,但是你们真的掌握了VS 的调试吗?有些时候由于线上环境和本地环境的差异, 导致本地可以运行, 但是线上确是存在异常的情况。也许可以通过Log 很快的定位到…

JavaEE--小Demo--数据库建立

目录 实验准备 本次所要新建的文件 实验步骤 step1-demo.sql 1.在resources文件夹下新建demo.sql文件 2.打开此目录,并运行命令提示符 3.打开数据库mysql -uroot -p 4.创建数据库create database demo; 5.使用数据库use demo; 6.导入数据source demo.sql;…

bochs模拟器中文文档

一、前言: 相信很多人都有使用模拟器的需求,因为并不是所有的场景都能用虚拟机代劳,如果你需要对程序精心的调试,实时查看内存与寄存器信息、研究指令集的工作原理,那么模拟器就是一种非常重要的工具。常见的模拟器有…

简介:KMeans聚类算法

在机器学习中,无监督学习一直是我们追求的方向,而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。聚类是一种包括数据点分组的机器学习技术。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中。 理论上,属于同…

海量数据处理项目-学以致用-商用短链平台需求文档拆分和总结

海量数据处理项目-学以致用-商用短链平台需求文档拆分和总结

提升Midjourney风格化的三个技巧

1. 引言 在前篇博文中,我们详细讲述了Midjourney的新功能风格参考的一些基础使用方法,事实上我们可以通过控制参数和提示权重进行更多的自定义操作,在本文中,我将向大家介绍我在网上搜集到的一些提升风格化效果的三个技巧。 闲话…

怎么卸载Mybatis?(仅需三步)

解决办法如下: 第一步:选择文件→设置 第二步:找到插件→输入Mybatis找到这个标志 第三步:把这个勾勾取消掉,点击确定,就可以轻松卸载了

hcip复习总结2(广域网与OSPF)

数据链路层面: 针对不同的物理链路定义不同的封装 局域网封装: Ethernet 2 ( TCP/IP ) , IEEE802.3 ( OSI ) 广域网封装: PPP HDLC FR ATM HDLC : 高级数据链路控制协…

备考ICA----Istio实验7---故障注入 Fault Injection 实验

备考ICA----Istio实验7—故障注入 Fault Injection 实验 Istio 的故障注入用于模拟应用程序中的故障现象,以测试应用程序的故障恢复能力。故障注入有两种: 1.delay延迟注入 2.abort中止注入 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/…

PTA题解 --- 阶梯电价(C语言)

今天是PTA题库解法讲解的第五天,今天我们要讲解A-B,题目如下: 解题思路: 要解决这个问题,我们可以编写一个C语言程序,首先判断输入的月用电量是否有效(即大于等于0)。如果有效&…