zoukankan      html  css  js  c++  java
  • BeautifulSoup库的使用方法

    from bs4 import BeautifulSoup
    import lxml
    
    
    html = '''
    <html><head><title>The Dormouse's story</title></head>
    <body>
    <p class="title"><b>The Dormouse's story</b></p>
    
    <p class="story">Once upon a time there were three little sisters; and their names were
    <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
    and they lived at the bottom of a well.</p>
    <p class="story">...</p>
    '''
    soup_html = BeautifulSoup(html,'html.parser')
    # print(soup_html.prettify())
    print(soup_html.title)#获取第一个title标签
    print(soup_html.title.name)#获取第一个title标签名(感觉没啥用)
    print(soup_html.title.string)#获取第一个title标签的text
    print(soup_html.title.parent)#获取第一个title标签的父标签
    print(soup_html.p)#获取第一个p标签
    print(soup_html.p['class'])#获取第一个p标签属性为'class'的值
    print(soup_html.find_all('a'))#获取所有的a标签
    print(soup_html.find(id='link3'))#获取id为‘link3’的标签
    print(soup_html.a.get('href'))#获取第一个a标签'href'属性的值
    print(soup_html.get_text())#获取所有的文本内容
    # 基本使用
    print(soup_html.b)#通过这种soup.标签名 我们就可以获得这个标签的内容
    
    # 获取属性
    print(soup_html.a.attrs['href'])
    print(soup_html.p['class'])
    # 获取内容
    # 1.string
    # 2.get_text()
    
    # 嵌套选择
    print(soup_html.p.b.get_text())
    
    # 子孙节点
    print(soup_html.p.contents)#p标签下的所有字标签
    print(soup_html.p.children)#<list_iterator object at 0x000002CAC07C20F0>
    print(soup_html.a.descendants)#也是个迭代对象
    
    # 父节点与祖先节点
    print(soup_html.p.parent)
    print(soup_html)
    print(list(enumerate(soup_html.a.parent)))
    
    # 兄弟节点
    
    print(soup_html.a.next_siblings)#获取后面的兄弟节点s
    print(soup_html.a.previous_siblings)#获取前面的兄弟节点s
    print(soup_html.a.next_sibling)#获取前面的兄弟节点
    print(soup_html.a.previous_sibling)#获取前面的兄弟节点
    
    # find_all(name,attrs,recursive,text,**kwargs)
    # 可以根据标签名,属性,内容查找文档
    
    # attrs
    print(soup_html.find_all('a',attrs={'id':'link1'}))
    # text
    print(soup_html.find_all(text="The Dormouse's story"))#返回的是文本
    # css选择器
    # 通过select()直接传入CSS选择器就可以完成选择
    # 熟悉前端的人对CSS可能更加了解,其实用法也是一样的
    # .表示class #表示id
    # 标签1,标签2 找到所有的标签1和标签2
    # 标签1 标签2 找到标签1内部的所有的标签2
    # [attr] 可以通过这种方法找到具有某个属性的所有标签
    # [atrr=value] 例子[target=_blank]表示查找所有target=_blank的标签
    
    print(soup_html.select(''))
    BeautifulSoup库的使用方法

     

  • 相关阅读:
    解决xcode5升级后,Undefined symbols for architecture arm64:问题
    第8章 Foundation Kit介绍
    app 之间发送文件 ios
    iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
    CRM下载对象一直处于Wait状态的原因
    错误消息Customer classification does not exist when downloading
    How to resolve error message Distribution channel is not allowed for sales
    ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
    有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
    SAP GUI和Windows注册表
  • 原文地址:https://www.cnblogs.com/ldq1996/p/7750207.html
Copyright © 2011-2022 走看看