首页 > 其他分享 >关于BeautifulSoup解析

关于BeautifulSoup解析

时间:2024-08-06 13:23:39浏览次数:12  
标签:list BeautifulSoup page href 关于 解析 find select 属性

一.导包

from bs4 import BeautifulSoup

二.建立BeautifulSoup的HTML内容

main_page = BeautifulSoup(content, "html.parser")

        由于没有安装lxml包,可以直接引入html.parser来完成

1.拿标签

        (1): 语法find(“标签名”, attrs={属性键:属性值}),  获取一个

a_list = main_page.find("ul", attrs={"class": "pic-list2"})

        (2): 语法find_all(“标签名”, attrs={属性键:属性值}), 获取所有同类型, 返回的是一个列表

a_list = main_page.find("ul", attrs={"class": "pic-list2"}).find_all("a")

        注意:因为find_all返回值是列表,后面不能接find(), 如果想要接find(),可以遍历这个列表,
或者find_all[0].find()。

2.拿标签属性或内容

        (1): 拿属性 .get("属性名")

for a in a_list:
    href = a.get("href")

        (2): 拿文字内容 .text

for a in a_list:
    em = a.find("em").text
        (3).判断地址尾部字符:.endswith()
if href.endswith(".exe"):
    continue

        

 3.关于爬虫中的域名解析

        列如:通过bs4, 获取href为 "bizhi/10070_120505_2.html", url = "https://baidu.com.cn/

可以直接拼接 a = href+url; 可是假如href为 "/caji/16870_165125_2.html",就不能直接拼接,因为href头部和url尾部的 “/”拼接会多余一条,所以就要判断“/”条数会变的麻烦。这时候可以直接应用urllib.parse中的urljoin库,就可以完成域名拼接。

from urllib.parse import urljoin
a = urljoin(url, href)   # 以后所有的路径拼接都用 .urljoin

三.直接适配CSS的解析方式(基于CSS的选择器)

1. select("结构选择"), 等价于find_all()

a_list = main_page.select(".photo-list-padding > a")

2. select_one("结构选择"), 等价于find()

src = chld_page.select_one("#bigImg").get("src")

select相较于find更受开发者明青睐

标签:list,BeautifulSoup,page,href,关于,解析,find,select,属性
From: https://blog.csdn.net/2302_81218746/article/details/140867152

相关文章

  • 控制反转(IOC)与依赖注入(DI)模式解析及实践
    本文由ChatMoney团队出品在软件开发中,控制反转(InversionofControl,简称IOC)和依赖注入(DependencyInjection,简称DI)是两种常用的设计模式,它们旨在降低组件间的耦合度,提高代码的可维护性和灵活性。一、控制反转(IOC)模式控制反转是将组件间的依赖关系从程序内部提到外部来管理。......
  • 抖音短视频矩阵系统源码部署/技术应用开发(流程全解析)
     应用场景:抖音矩阵系统源码开发搭建/短视频矩阵号系统源码开发搭建/ 抖音seo矩阵系统源码开发搭建等。抖音短视频矩阵系统源码开发对服务商有哪些要求?企业在选择服务商时,无论是考虑自用还是考虑加盟服务商,都要考评服务商是否有相关开发资质,能力证明等,除此之外,功能的......
  • Android开发 - DialogFragment 类解析
    DialogFragment是什么DialogFragment是一种用于显示对话框的工具,同时它也是一个抽象类。在Android应用中,对话框是一种小窗口,通常用于显示重要信息或提示用户进行某些操作。通过使用DialogFragment,我们可以在应用中方便地显示和管理对话框DialogFragment的好处使用Dialo......
  • DyFusion:基于动态融合的交叉注意三维目标检测 论文解析
    目录概况创新点详解1、跨注意力动态融合 Cross-AttentionDynamicFusion(1)特征提取(2)体素特征编码(3)BEV特征提取(4)特征动态融合①线性变换②对Q(BEV特征)和K(图像特征)进行点积运算③Softmax运算④特征加权融合⑤将计算出来的特征与图像原特征进行连接 2、同步数......
  • 数据包络分析(DEA)深度解析:评估决策单元的综合效率
    文章目录DEA分析步骤与计算公式步骤1:确定决策单元(DMU)和变量步骤2:数据收集与标准化步骤3:选择合适的DEA模型步骤4:构建DEA模型步骤5:求解DEA模型步骤6:结果分析与解释步骤7:提出改进建议步骤8:敏感性分析实例分析结论数据包络分析(DEA)是一种衡量生产效率的非参数方法,它评估......
  • Python-MNE全套教程(官网翻译)-入门05:关于传感器位置
    本教程描述了如何读取和绘制传感器位置,以及MNE-Python如何处理传感器的物理位置。像往常一样,我们将从导入我们需要的模块开始:frompathlibimportPathimportmatplotlib.pyplotaspltimportnumpyasnpimportmne关于montage和layout(蒙太奇和传感器布局)montage......
  • Bugku -----Web-----全题目解析 (二) 超详细步骤
    ————————————————————分割线———————————————————— 6.矛盾这一行从URL查询字符串中获取名为num的参数值,并将其赋值给$num变量。如果URL中没有提供num参数,或者参数值不是有效的字符串,则$num将被设置为空或者默认值。......
  • [20240804]关于kitty设置与linux LANG环境设置问题.txt
    [20240804]关于kitty设置与linuxLANG环境设置问题.txt--//更正我以前理解的一个混沌的地方:--//我以前个人的工作习惯:LANG=en_US,kittyRemotecharacterset选择Usefontencoding.--//目前这样的设置存在一些问题:--//kitty设置LANG=en_US.UTF-8的情况下,kittywindow->Trans......
  • 影视模板首涂21套高收录模板:SEO优化全解析
    苹果CMS10影视模板首涂21套高收录模板:SEO优化全解析在数字化时代,影视内容的在线播放已成为主流,而一个优秀的影视网站模板则是吸引观众、提升用户体验的关键。苹果CMS10作为一款功能强大的内容管理系统,其影视模板的设计与SEO优化直接关系到网站的流量和排名。本文将详细介绍苹......
  • Netty技术全解析:ByteToMessageDecoder类深度解析
    ❃博主首页:「码到三十五」,同名公众号:「码到三十五」,wx号:「liwu0213」☠博主专栏:<mysql高手><elasticsearch高手><源码解读><java核心><面试攻关>♝博主的话:搬的每块砖,皆为峰峦之基;公众号搜索「码到三十五」关注这个爱发技术干货的coder,......