BeautifulSoup基础

简介:
MarkdownPad Document

BeautifulSoup

findAll函数
nameList = bsObj.findAll("span", {"class":"green"})
for name in namelist:
    print(name.get_text())

#找到所有属性class="green"的span标签,通常在你准备打印、存储和操作数据时,应该最后才使
用 .get_text() 。一般情况下,你应该尽可能地保留 HTML 文档的标签结构。

findAll(tag, attributes, recursive, text, limit, keywords)
find(tag, attributes, recursive, text, keywords)

tag:可以传一个标签名称或者多个标签组成的列表
attributes:用字典封装一个标签的若干属性和对应的属性值
recursive:默认为True,递归查找子标签,设置为False则只查找一级标签
text:用标签的文本内容去匹配,而不是标签的属性
limit:对获取的项进行限制,find就是findall的limit=1
keyword:可以选择那些具有指定属性的标签(由于class在Python中是保留字,而在CSS中是属性名,所以不推荐用keyword)
例如:
allText = bsObj.findAll(id="text")

BeautifulSoup中的对象

  • BeautifulSoup对象——bsobj

  • 标签Tag对象——bsObj.div.h1

  • NavigableString对象——标签里的文字

  • Comment对象——查找HTML文档的注释标签

    bsObj.div.findAll("img") 会找出文档中第一个 div 标签,然后获取这个 div 后 代里所有的 img 标签列表。

    for child in bsObj.find("table",{"id":"giftList"}).children: print(child)     #找table的子标签

    for sibling in bsObj.find("table",{"id":"giftList"}).tr.next_siblings: print(sibling)   #找tr后面的兄弟标签

  • nextsiblings与previoussiblings 一组

  • nextsibling与previoussibling 一个

  • parent  找父标签

邮箱正则:  [A-Za-z0-9._+]+@[A-Za-z]+.(com|org|edu|net)

EhyPDBq.png

通过正则表达式匹配内容:
images = bsObj.findAll("img",{"src":re.compile("\.\.\/img\/gifts/img.*\.jpg")})
#都是以 ../img/gifts/img 开头 以 .jpg 结尾
for image in images:
    print(image["src"])

获取属性

  • tag.attrs   得到属性字典

  • imgTag.attrs["src"]   获取图片标签的src属性的值

  • soup.findAll(lambda tag: len(tag.attrs) == 2)


本文转自 AltBoy 51CTO博客,原文链接:http://blog.51cto.com/altboy/1942172
相关文章
|
4天前
|
XML 数据格式
Beautiful Soup 库提供了许多常用的方法
【5月更文挑战第10天】Beautiful Soup库用于HTML/XML文档解析和操作,提供初始化、查找、提取信息及修改文档的方法。如:find()和find_all()查找元素,.string或.get_text()获取文本,.attrs获取属性,.append()、.insert()、.remove()、.replace_with()、.unwrap()和.wrap()修改文档结构。还有.prettify()格式化输出,.encode()和.decode()处理编码。这些功能组合使用可灵活处理文档信息。
12 1
|
5月前
|
XML API 数据格式
Beautiful Soup
Beautiful Soup 是一个用于从网页中提取数据的 Python 库。它可以帮助用户轻松地解析 HTML 和 XML 文档,并从中提取所需的信息。Beautiful Soup 基于 Python 的标准库,因此无需安装任何额外的依赖包即可使用。
48 7
|
XML 数据格式 Python
|
数据采集 前端开发 测试技术
Beauiful Soup
Beautiful Soup的简单使用
|
Python
Beautiful Soup库的介绍
本节中将介绍如何使用 Beautiful Soup 来解析 HTML 以获取我们想要的信息。
78 0
BeautifulSoup的基本使用
要使用BeautifulSoup4需要先安装lxml,再安装bs4
50 0
BeautifulSoup的基本使用
|
XML 数据格式 Python
每日一模块——BeautifulSoup4
每日一模块——BeautifulSoup4