Beautiful Soup的使用

1.下载

pip install bs4
pip install lxml # 解析器 官方推荐

2.引用方法

from bs4 import BeautifulSoup # 引入我们的主题

3.解析原理

  • 实例化一个BeautifulSoup的对象,并且将即将被解析的页面源码数据加载到该对象中
  • 调用BeautifulSoup对象中的相关属性和方法进行标签定位和数据提取

4.使用方法

将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄

soup = BeautifulSoup(open("index.html"),'lxml') # 文件句柄

soup = BeautifulSoup("<html>data</html>",'lxml') # 网页源数据
  • tag

    纯标签定位

    soup.tagName:定位到第一个TagName标签,返回的是单数

    属性定位

    属性定位:soup.find('tagName',attrName='value'),返回也是单数(第一个元素)
    find_all:和find用法一致,但是返回值是列表
    注:attrname中查询class字段为class_,id为id
  • selector

    返回值为列表

    选择器定位:select('选择器')
    返回值类型为bs4.element.ResultSet
    标签,类,id,层级(>:一个层级,空格:多个层级)
  • 提取数据

    • 取文本

      • tag.string:标签中直系的文本内容
      • tag.text:标签中所有的文本内容
    • 取属性
      • tag['attrName']

5.注意事项

只有bs4.element.Tag对象才拥有上述的方法和属性,select返回的对象集合是不具有该属性和方法,通过索引拿到对应的Tag对象才能进行数据提取操作

最新文章

  1. C# 类型转换
  2. ACM 会场安排问题
  3. 一步一步学习Swift之(一):关于swift与开发环境配置
  4. Html5新标签及用法
  5. AndroidStudio怎么将开源项目发布到jcenter
  6. easyui-combobox小Demo
  7. CodeForces 543A - Writing Code DP 完全背包
  8. 使用JPA和Hibernate进行批量处理的最佳方式
  9. HtmlWebpackPlugin实现资源的自定义插入
  10. 【批处理学习笔记】第二十九课:ASCII码
  11. Java数据结构和算法(十二)——2-3-4树
  12. SUSE12Sp3安装配置.net core 生产环境-总汇(持续更新中...)
  13. AD域 组策略部署U软件
  14. Zabbix报警执行远程命令
  15. day07--字符编码、文件处理
  16. Js And PHP Modify Cookie
  17. Redis 实现接口访问频率限制
  18. UVALive-3399-Sum of Consecutive Prime Numbers(素数筛,暴力)
  19. 【转载】jquery实现勾选复选框触发事件给input赋值+回显复选框
  20. PIE currently adds full or partial support to IE 6 through 8 for the following CSS3 features

热门文章

  1. Python编程入门(第3版) PDF|百度网盘下载内附提取码
  2. 2020牛客暑期多校训练营 第二场 K Keyboard Free 积分 期望 数学
  3. 问题记录,php webserver端跨子域setcookie后浏览器不存
  4. 快速构建一个springboot项目(一)
  5. Jenkins总结1-部署jenkins
  6. 7月13日考试 题解(DFS序+期望+线段树优化建图)
  7. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
  8. Python 写一个俄罗斯方块游戏
  9. 会话机制,Cookie和Session详解
  10. C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)