BeautifulSoup实例

BeautifulSoup实例

1 .string与.strings

  • .string:如果一个标记里没有标记了,或者一个标记里只有唯一的一个标记,可以返回标记里的内容;如果tag包含多个子节点,则返回None。
  • .strings 主要应用与tag中包含多个字符串,进行循环遍历。返回类型为生成器
self.log.info(soup.p.string)

for subH1 in soup3.h1.strings:
	self.log.info(subH1)

2 搜索文档树 find_alll()

  • find_all(name,attrs,recursive,text,**kwargs)
    name 可以是字符串、正则表达式、列表、True、函数
    字符串:查找所有<p>标记

    soup.find_all(‘p’)

    正则表达式:查找所有以b开头的标记

    soup.find_all(re.compile("^b")

    列表:找到所有的<a> 、<b>标记

    soup.find_all([“a”,“b”])

    True:匹配所有的Tag

    soup.find_all(True)

    函数:查找class\id属性

    def hasClass_Id(tag):
    	return tag.has_attr('class') and tag.has_attr('id')
    soup.find_all(hasClass_Id)
    

    **kwargs参数查找

    soup.find_all(id=‘link2’)
    soup.find_all(href=re.compile(“img”)
    soup.find_all(“a”,attrs={“id”:“item_number”)
    soup.find_all(“a”,class_=“item_number”)
    soup.find_all(text=“item_number”)

    3 其它函数与find_all相似

    函数功能
    find()与find_all使用相同,find_all返回满足要求的列表,find只返回find_all返回列表中的第一个。
    find_parent()、find_parents()搜索当前节点的父辈节点。
    find_next_siblings()、find_next_sibling()搜索当前节点的后面的兄弟节点。
    ind_preivous_siblings()、find_previous_sibling()搜索当前节点的前面的兄弟节点。
    ind_all_next()、find_next()对当前tag之后的tag和字符串进行迭代
    ind_all_previous()、find_previous()对当前tag之前的tag和字符串进行迭代
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值