美文网首页selenium知识点整理&汇总
Selenium学习003-元素选择之BeautifulSoup

Selenium学习003-元素选择之BeautifulSoup

作者: 残阳夕露 | 来源:发表于2018-07-27 00:00 被阅读67次

    Selenium学习笔记目录

    BeautifulSoup4

    • BS是可以从HTML或XML文件中提取数据的库

    • Selenium可以用来远程获取数据

    • 有的时候,感觉用Selenium获取某些元素数据不太方便

    • 可以将其父节点的html获取回来,利用BS在本地做分析

    • 我们可以将它和selenium两种技术融合使用,达到我们的目的

    • 安装BeautifulSoup4

      pip install beautifulsoup4
      # pip install beautifulsoup4 -i https://pypi.douban.com/simple/
      pip install html5lib
      
    • 常见用法(详见示例内的代码及注释)

      • 示例及具体方法
      # 本例采用的是本地的html
      with open ('test.html',encoding = 'utf8') as f :
          html_doc = f.read()
      # 导入beautifulsoup
      from bs4 import BeautifulSoup
      
      # 指定html5lib来解析html文档
      soup = BeautifulSoup(html_doc,'html5lib')
      
      print(soup.title) # 获取标签整体内容
      print(soup.p)# 有多个时,获取的是第一个
      print(soup.title.name) # 获取标签名称
      print(soup.title.string) # 获取点前节点标签的内容
      print(soup.title.get_text()) # 获取当前节点及子节点的所有内容
      print(soup.body.get_text("|")) # 获取当前节点及子节点的所有内容,以|分隔每个节点的内容
      print(soup.title.parent)# 获取当前节点及父节点的内容
      
      print(soup.body['style']) # 获取属性值
      print(soup.body.get('style')) # 获取属性值
      
      # 有多个标签想获取非第一个
      # 方法一;先返回所有的,在根据下标查找
      print(soup.find_all('p')) #返回的是一个列表所以可以使用列表获取元素的方法
      print(soup.find_all('p')[1]) # 根据下标获取第二个
      # 方法二:根据属性找
      print(soup.find_all('p',id='b')) # 根据id获取第二个
      
      # 执行结果
      
      <title>测试</title>
      <p id="a">第一个p</p>
      title
      测试
      测试
      
      |
      标题1
      |
      |
      标题2
      |
      |第一个p|
      |第二个p|
      |第三个p|
      
      
      <head>
      <title>测试</title>
      </head>
      background-color: yellow
      background-color: yellow
      [<p id="a">第一个p</p>, <p id="b">第二个p</p>, <p id="c">第三个p</p>]
      <p id="b">第二个p</p>
      [<p id="b">第二个p</p>]
      
      • 演示文件
      # html文件(本地)
      <html>
      <head>
      <title>测试</title>
      </head>
      <body style='background-color: yellow'>
      <h1 >
      标题1
      </h1>
      <h2 style = 'background-color:green;text-align:center'>
      标题2
      </h2>
      <p id ='a'>第一个p</p>
      <p id = 'b'>第二个p</p>
      <p id = 'c'>第三个p</p>
      </body>
      </html>
      

    相关文章

      网友评论

        本文标题:Selenium学习003-元素选择之BeautifulSoup

        本文链接:https://www.haomeiwen.com/subject/uhnimftx.html