bs4 beautifulsoup学习笔记

简介: bs4 beautifulsoup学习笔记

“”"

TODO

# 用requests库获取网页html
r = requests.get("https://python123.io/ws/demo.html")
demo = r.text

“”"

  1. 对demo进行html的解析
soup =BeautifulSoup(demo, "html.parser")
  1. 格式化html打印出来
print(print(soup.prettify()))
  1. 打印title标签
print(soup.title)
  1. 打印内容的第一个a标签
print(soup.a)
  1. 打印a标签的属性
print(soup.a.attrs)
  1. 打印a标签的text内容
print(soup.a.string)
  1. 打印a标签的具体href连接属性
print(soup.a.attrs['href'])
  1. 打印a标签的名字,就是a
print(soup.a.name)
  1. 打印a标签的父标签名称
print(soup.a.parent.name)
  1. 获取a的父亲的父亲标签
print(soup.a.parent.parent.name)
  1. 获取head的子节点
print(soup.head.contents)
  1. 遍历子节点
for child in soup.body.children:
   print(child)
  1. 遍历子孙节点soup.body.descendants:
    """
    .patent   获取节点的父标签
    .parents  获取节点的所有父节点
    """

    for parent in soup.a.parents:
        if parent is None:
             print(parent)
        else:
             print(parent.name)
  1. 获取a标签的后一个平行标签,中间的字符也会算为平行标签
print(soup.a.next_sibling)
  1. 获取a标签的后一个平行标签的后一个平行标签
print(soup.a.next_sibling.next_sibling)
  1. 获取a标签的前一个平行标签,中间的字符也会算为平行标签
print(soup.a.previous_sibling)

    """
    .next_siblings      遍历后续所有平行节点
    .previous_siblings  遍历前续所有平行节点
    """

    for sibings in soup.a.next_siblings:
        print(sibings)
  1. 获取内容的所有a标签
soup.find_all("a")

# 打印a中href属性
for link soup.find_all("a"):
    print(link.get('href'))
  1. 获取所有ab标签
soup.find_all(['a','b'])
  1. 获取p标签class包含xxx属性的标签
soup.find_add('p', 'xxx')
  1. 获取所有标签
soup.find_all(True)
  1. 寻找标签名包含b字符的所有标签
soup.find_all(re.compile('b'))
  1. 按固定id值寻找标签
soup.find_all(id='xxx')
  1. 按id值存在xx字符寻找标签
soup.find_all(id=re.compile('xxx'))
  1. recursive值,是否对子孙全部检索,默认True
soup.find_all('a', recursive = False)
设置为false后,只对子节点进行检索
  1. string检索是否存在text为xxx的标签
soup.find_all(string = "xxx")
  1. string检索是否存在text包含xxx的标签
soup.find_all(string = re.compile("xxx"))
目录
相关文章
|
2月前
|
XML 数据采集 API
MechanicalSoup与BeautifulSoup的区别分析
MechanicalSoup与BeautifulSoup的区别分析
49 2
MechanicalSoup与BeautifulSoup的区别分析
|
7月前
|
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()处理编码。这些功能组合使用可灵活处理文档信息。
42 1
|
7月前
|
缓存 前端开发 Python
BeautifulSoup(bs4)性能优化
BeautifulSoup(bs4)性能优化
WK
|
3月前
|
XML 数据采集 数据挖掘
什么是Beautiful Soup?有哪些特点?
Beautiful Soup,常被称为“美丽汤”,是用于解析HTML和XML文档的Python库,能自动修复不规范的标签,便于遍历、搜索及修改文档结构,适用于网页爬虫和数据采集。它提供直观的方法来处理文档,支持多种解析器,具备强大的搜索功能,包括find()和find_all()等方法,并兼容CSS选择器,简化了数据提取过程。广泛应用于网页爬虫、数据挖掘及网页内容分析等领域。
WK
202 1
|
4月前
|
数据采集 XML 前端开发
BeautifulSoup
【8月更文挑战第18天】
54 1
|
4月前
|
前端开发 Python
Beautiful Soup
【8月更文挑战第4】
65 9
|
7月前
|
数据采集 Web App开发 安全
Beautiful Soup和Requests
【5月更文挑战第7天】本文介绍了使用Python中的Requests和Beautiful Soup库创建网络爬虫的方法。Requests库简化了HTTP请求,Beautiful Soup则用于解析HTML和XML文档,便于提取信息。首先,文章解释了两个库的作用和安装步骤。接着,通过实例展示了如何提取网页标题和链接,以及如何下载并保存图片。对于动态加载的内容,文章推荐使用Selenium库模拟浏览器行为。此外,还介绍了如何处理登录认证,包括安全输入密码和从外部文件读取凭据。总结来说,本文提供了Python网络爬虫的基础知识和实用技巧。
|
数据采集 SQL 移动开发
【Python爬虫】Beautifulsoup4中find_all函数
【Python爬虫】Beautifulsoup4中find_all函数
|
XML 数据格式 Python
|
XML 前端开发 数据格式
bs4之Beautiful Soup
bs4之Beautiful Soup
195 0
bs4之Beautiful Soup