1.BeautifulSoup简介

Beautiful Soup 提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup 自动将输入文档转换为 Unicode 编码,输出文档转换为 utf-8 编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup 就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。 Beautiful Soup 已成为和 lxml、html6lib 一样出色的 python 解释器,为用户灵活地提供不同的解析策略或强劲的速度。

官方文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

2. Beautiful Soup 安装

pip install beautifulsoup4
pin install lxml # lxml解析库

Beautiful Soup 支持 Python 标准库中的 HTML 解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python 默认的解析器,lxml 解析器更加强大,速度更快,推荐安装。

Python 标准库:BeautifulSoup(html_doc, “html.parser”)

  • Python 的内置标准库
  • 执行速度适中
  • 文档容错能力强
  • Python 2.7.3 or 3.2.2) 前 的版本中文档容错能力差

lxml HTML 解析器 :BeautifulSoup(html_doc, “lxml”)

  • 速度快
  • 文档容错能力强
  • 需要安装 C 语言库

lxml XML 解析器:BeautifulSoup(html_doc, “xml”)

  • 速度快
  • 唯一支持 XML 的解析器
  • 需要安装 C 语言库

html5lib:BeautifulSoup(html_doc, “html5lib”)

  • 最好的容错性
  • 以浏览器的方式解析文档
  • 生成 HTML5 格式的文档
  • 速度慢
  • 不依赖外部扩展

3. 创建 Beautiful Soup 对象

# 导入 bs4 库
from bs4 import BeautifulSoup# 字符串示例html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body><p class="title"><b>The Dormouse's story</b></p>
<p class="story">...</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>"""# 创建 beautifulsoup 对象
# 默认bs4会调用系统中的lxml解析库,也可以主动设置bs4的解析库
soup = BeautifulSoup(html_doc,'lxml') # 设置解析库为 lxml

4. 常用方法

# 格式化输出
result=soup.prettify()# 取title标签
result=soup.title# 取title标签名
result=soup.title.name# 取title标签内容,若标签下有多个内容时,返回None
result=soup.title.string# 取title标签内容,若标签下有多个内容时,全部返回
result=soup.title.get_text()# 取p标签,只会取第一个
result=soup.p# 取p标签的类
result=soup.p['class']# 取a标签(第一个)
result=soup.a# 取a标签的href属性
result=soup.a['href']# find -- 返回符合查询条件的第一个标签
# 指定标签名
result=soup.find(name="a") # 同 soup.find("a")# 指定属性
result=soup.find(attrs={'id':'link1'})# 指定内容
result=soup.find(text='Elsie')# 组合条件
result=soup.find(name='p',attrs={'class':'story'})#find_all --list
result=soup.find_all('a') # 取出所有a标签result=soup.find_all('a',limit=2) # limit限制返回标签数result=soup.find_all(attrs={'class':'sister'}) # 取出所有属性 class为sister的标签result=soup.a.attrs # 获取a标签的所有属性result=soup.select_one('.sister') # 取出class为sister的第一个标签# ### CSS选择器 -- listresult=soup.select('.sister') # 类选择器,取出所有class为siser的标签result=soup.select('#link1') # id选择器,取出所有id为link1的标签result=soup.select('head title') # 取head标签中的title标签result=soup.select('title,.title') # 取title标签 和 class为title的标签result=soup.select('a[id="link2"]') # 取 a标签中 id为link2的标签# # 标签包裹的内容
result=soup.select('.sister')[0].get_text() # 取class为sister的第一个标签的内容# # 标签的属性
result=soup.select('.sister')[1].get('href') # 取class为siser的第二个标签的href属性print(result)
print(type(result))

python BeautifulSoup的使用相关推荐

  1. python beautifulsoup抓取网页内容_利用Python和Beautiful Soup抓取网页内容

    利用Python和Beautiful Soup抓取网页内容 Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏 Python 3中提供了url打 ...

  2. Python beautifulsoup爬取小说

    Python beautifulsoup爬取小说 提前准备好需要的库文件,命令行输入以下命令 pip install requests pip install bs4 pip install lxml ...

  3. Python+beautifulsoup+requests 爬取网易新闻评论

    前段时间在看处理数据相关的书籍,实践中需要一些网上评论的文本数据集,所以想到爬取网易新闻底下的评论.本来想着Python+beautifulsoup(解析)+requests(抓取),最后存储在txt ...

  4. Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频

    1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...

  5. python BeautifulSoup的简单使用

    官网:https://www.crummy.com/software/BeautifulSoup/bs4/doc/ 参考:https://www.cnblogs.com/yupeng/p/336203 ...

  6. python+BeautifulSoup+多进程爬取糗事百科图片

    用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...

  7. python:beautifulSoup学习(来自学习资料)

    罗列问题: 1.beautifulSoup是什么 是一个能够快速从html或者xml文档中获取数据的类库. 官方的说是,能够帮你节省一天或者几天的开发时间. 2.beautifulSoup如何安装 P ...

  8. python BeautifulSoup 爬虫运行出现 exited with code -1073741571

    首先,exited with code -1073741571意思是栈溢出.具体可以看https://blog.csdn.net/vblittleboy/article/details/6613815 ...

  9. python beautifulsoup多线程分析抓取网页

    下面的代码用到了 1 python 多线程 2 网页分析库:beautifulsoup ,这个库比之前分享的python SGMLParser 网页分析库要强大很多,大家有兴趣可以去了解下. #enc ...

  10. Python BeautifulSoup和Requests爬虫爬取中关村手机资料

    ** 一.事前准备 ** 目标:爬取www.zol.com.cn的收集资料,各种参数 库:BeautifulSoup和requests.对BeautifulSoup库的find和find_all有基本 ...

最新文章

  1. 什么是好的图神经网络?
  2. 《基于场景的工程方法》作者问答录
  3. 【JavaScript基础笔记】模块化、立即执行函数应用、闭包应用
  4. getparameter的使用
  5. mysql中in查询效率低的替代方法_一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍...
  6. ​KDD 2019 | 用户视角看世界:腾讯提出ConcepT概念挖掘系统,助力推荐搜索
  7. hive mysql windows_Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox)...
  8. 运用范式的规范数据库设计的好处
  9. [面试] C++ 语法(一) —— 初始化列表的初始化顺序
  10. 后缀数组 倍增法详解
  11. html页面缩小布局乱了为什么啊_PPT页面总是太空?这4个方法,让你的PPT增加亿点点细节!...
  12. Python设计模式--策略模式
  13. 【动态规划】FatMouse's Speed
  14. 林燕妮: 一见杨过误终生
  15. matlab向后误差,matlab-误差棒
  16. 游戏3D美术设计就业前景如何?现在饱和了吗
  17. Java项目:基于ssm汽车配件管理系统(计算机毕业设计)
  18. Python Flask开发简单http api接口 示例
  19. 浪潮服务器bios怎么找回密码,服务器BIOS密码丢失解决方法
  20. linux 查看文件创建时间

热门文章

  1. Windows10系统中断、系统设置打不开的解决办法
  2. 数据库的视图,视图的更新,视图的可操作性
  3. 软件设计师经典视频教程
  4. 6月最新兼容15.0系统ipa重签名工具(win+mac)免费
  5. PCL:投影滤波(二)将点云投影至球面
  6. Linux安装docker及其他镜像
  7. webrtc 之 sip trickle ice
  8. java导出excel插入图片
  9. devops之gcp core infrastructure fundamental, 存储
  10. 电子设计中常用的运放电路