首页 > 其他分享 >beautifulSoup查找元素常用汇总

beautifulSoup查找元素常用汇总

时间:2023-06-15 16:26:43浏览次数:45  
标签:parent text 汇总 beautifulSoup next re 查找 xmSoup find

0、初始化:

from bs4 import BeautifulSoup
pageSource = driver.page_source
soup = BeautifulSoup(pageSource,'html.parser')

1、标签名定位  

方法1:

soup.body

方法2:

li.select('a')

2、查找

2.1、单个查找

2.1.1、按text内容查找

xmSoup.find(text=re.compile(u'来源:'))    #含有XXX
xmSoup.find(text=re.compile(u'项目编号:$'))  #XXX结尾
xmSoup.find(text=re.compile(u'^项目编号:'))  #XXX开头
2.1.2、按标签名+class名查找
xmSoup.find('table',class_='form-panel-input-cls')

2.2、查找所有

2.2.1、按标签名查找

soup.find_all('input')[3]['value']  #第3个input标签的value属性

2.2.2、按标签名+class名查找

soup.find("ul",class_="po-pager").find_all('li')  #ul标签下所有的li标签
2.2.3、按text内容查找  同2.1.1

3、父节点

例1:

xmSoup.find(text=re.compile(u'^项目编号:')).parent  #tips:有时find的结果不能直接取text,而要先到parent再取text

例2:

BudgetPoint = xmSoup.find(text=re.compile(u'预算金额:$'))
BudgetRoot = BudgetPoint.parent.parent.parent.parent  #tips:有时取parent时,只上一个parent,并不是直接上一级parent,而要使用4个parent才能找到直接上一级parent

4、子节点

4.1、childrent

例1:

for BudgetTemp in BudgetRoot.children:
            Budget = Budget + BudgetTemp.text

例2:

i = 0
for TimeTemp in TimeEndParent.children:
   i = i+1
   if i == 4:                #tips:有时候,要找的是第2个child,但是要到第4个才是要找的第2个child
    TimeRange = TimeTemp.text

 

4.2、contents  tag的 .contents 属性可以将tag的子节点以列表的方式输出 例1:
Budget = xmSoup.find('tbody').contents[1].contents[4].text

例2:

xmTime.next_element.contents[1].text

 

5、上下移  #tips:用element找不到的时候,可以用try/catch换sibling

5.1、.next_sibling 和 .previous_sibling  使用 .next_sibling 和 .previous_sibling 属性来查询兄弟节点

xmSoup.find(text=re.compile(u'采购编号:$')).next_sibling.text

5.2、.next_element 和 .previous_element  .next_element 属性指向解析过程中下一个被解析的对象(字符串或tag),结果可能与 .next_sibling 相同,但通常是不一样的

try:
      xmID = xmSoup.find(text=re.compile(u'采购编号:$')).next_element.text
except:
      xmID = xmSoup.find(text=re.compile(u'采购编号:$')).next_sibling.text

6、获取text

例1:

xmSoup.find(text=re.compile(u'项目名称:$')).next_element.text

例2:

ggType = soup.font.text

7、获取属性

href =  tag[0]['href']

 

标签:parent,text,汇总,beautifulSoup,next,re,查找,xmSoup,find
From: https://www.cnblogs.com/feifeidxl/p/17483105.html

相关文章

  • SAP查找用户的登录记录及修改记录
    1、可以使用USR02中有个上次登陆日期和登陆时间。  2、用SE38跑下RSUSR200,输入用户名即可查询上次登陆日期 3、SU10可以查到 4、USH02可以查找用户的修改记录  ......
  • [-003-]-Python3+Unittest+Uiautomation Windows桌面App UI自动化之控件查找
    1、获取所有的子控件:control.GetChildren()2、获取首个子控件:control.GetFirstChildControl()3、获取最后一个子控件:control.GetLastChildControl()4、获取下一个兄弟控件:control.GetNextSiblingControl()5、获取前一个兄弟控件:control.GetPreviousSiblingContr......
  • 查找与引用
    1.在给出的表中填写相关公式进行计算,使用Vlookup的模糊查找。要求贴图公式与计算结果,在表中对应位置填入公式,使用Vlookup的精确查找,要求贴图公式与计算结果 ......
  • 高级查找
    1.index与match案例ch2-10index和match.xlsx用Indirect和名字查询数据,Choose函数查询。 ......
  • 杭州中华财险面试题___整理汇总
    中华保险 ========================================5.9 中华保险 一面1.讲项目(银行),问之前的保险项目,二者区别2.接口自动化框架3.接口用例设计4.什么时候做接口自动化,跑的频率5.迭代一次,测试开发占比时间6.上个项目测试难点,怎么解决的7.ui自动化主要做哪些8.生产环境和预发布......
  • PHP配置查找
    #PHP那个配置文件在启用php-i|grepphp.ini#配置扩展目录php-i|grepextension_dir ......
  • (转)别人记录的第三方安全扫描报告问题处理汇总,覆盖了大部分遇到的
    http://wpcms.zdsoft.net/newsInfo.aspx?pkId=173http://www.taodudu.cc/news/show-5963408.html?action=onClick检测到目标服务器存在应用程序错误修改网站web.config配置,已关闭详细错误信息显示。将mode值修改为On<system.web>   <customErrors mode="On">   </c......
  • 【剑指Offer】1、二维数组中的查找
    【剑指Offer】1、二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:很明显,由于该二维数组上到下......
  • 数据结构 查找1
    考纲内容1.查找的基本概念查找:从数据集合中查找满足某种条件的数据元素查找结果中要注意,有查找成功和查找失败查找表:用于查找的数据集合,定义有各种相关的操作:查询特定元素、根据条件检索数据、插入和删除。静态/动态查找表:根据查找表中定义的操作种类区分没有定义插入和删......
  • Java基本查找,二分查找,选择排序
    一、基本查找packagecom.itheima.d8_sort_binarysearch;/***基本查找*/importjava.util.Scanner;publicclassTest3{publicstaticvoidmain(String[]args){//1、定义一个数组(基本查找)int[]arr={12,95,1,3,76,4,2,93,56,49,67};......