BeautifulSoup库整理
BeautifulSoup库
一.BeautifulSoup库的下载以及使用
1.下载
pip3 install beautifulsoup4
2.使用
improt bs4
二.BeautifulSoup库解析器
| 解析器 | 使用方法 | 优势 | 劣势 |
|---|---|---|---|
| bs4的HTML解析器 | BeautifulSoup(mk,'html.parser') | Python 的内置标准库 执行速度适中 文档容错能力强 |
Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差 |
| lxml的HTML解析器 | BeautifulSoup(mk,'lxml') | 速度快 文档容错能力强 |
需要安装C语言库 |
| lxml的XML解析器 | BeautifulSoup(mk,'xml') | 速度快 唯一支持XML的解析器 |
需要安装C语言库 |
| html5lib解析器 | BeautifulSoup(mk,'html5lib') | 最好的容错性 以浏览器的方式解析文档 生成HTML5格式的文档 |
速度慢 |
条件 :
bs4的HTML解析器:安装bs4库
lxml的HTML解析器:pip3 install lxml
lxml的XML解析器:pip3 install lxml
html5lib解析器:pip3 install html5lib
三.BeautifulSoup类的5种元素
| 基本元素 | 简单说明 | 详细说明 |
|---|---|---|
| tag | 标签 | 分别用<>与</>来表示开头和结尾 |
| name | 标签的名字 | 用法:<tag>.name输出为字符串的形式 |
| attributes | 标签里的属性 | 用法:<tag>.attrs输出为字典的形式 |
| navigablestring | 标签里的内容 | 用法:<tag>.string可以跨域多个标签层次 |
| comment | 标签里面的注释 | 一种特殊的comment类型 |
- 获取标签方法,解析后的网页.标签的名字,如果
同时存在多个标签只取第一个 - 获取标签的父标签<tag>.parent
- <tag>表示标签
- 当标签为没有属性的时候,我们获得的是个空字典
四.标签树向下遍历
- .contens:子节点列表,不仅仅包括标签节点,也包括字符串节点例如\n
- .children:子节点的迭代器类型也包括字符串节点例如\n
- descendants:子孙节点的迭代类型也包括字符串节点例如\n
五.标签树向上遍历
- .parent:节点的父亲标签
- .parents:节点先辈标签的迭代器类型
注意:如果是html的父标签就是他自己,soup本身也是种特殊的标签的他的父标签是空
六.标签树平行遍历
- .next_sibling:下一个平行标签
- .previous_sibling:上一个平行标签
- .next_silbings:迭代器类型,向下所有标签
- .previous_silbling:迭代器类型,向上所有标签
注意:必须在同一个父节点下才有平行关系,平行遍历获得的对象不一定是标签,也可能是文本,如果上下没来就为空
七.prettify使得解析后页面更加好看
解析后的页面
prettify():会把解析的网页加上\n的文本文档,能使它打印变得更加好看
BeautifulSoup库整理的更多相关文章
- python 常用库整理
python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...
- Python常用库整理
Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...
- Python爬虫小白入门(三)BeautifulSoup库
# 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...
- BeautifulSoup库children(),descendants()方法的使用
BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...
- 网络爬虫BeautifulSoup库的使用
使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...
- BeautifulSoup库的使用
1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...
- python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...
- python下载安装BeautifulSoup库
python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...
- 基于BeautifulSoup库的HTML内容的查找
一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...
随机推荐
- 修改用户名后TSF出现"需要本地工作区。工作区 xxx 并未驻留在本计算机上"
解决方法就是:1,打开vs下的"开发人员命令提示"2,按下面格式输入命令:tf workspaces /collection:http://192.168.0.110:8080/t ...
- ML:机器学习中常用的Octave语句
coursera上吴恩达的机器学习课程使用Octave/Matlab实现算法,有必要知道Octave简单的语句.最重要的:在遇到不会的语句,使用'''help '''或者'''doc '''查看官方文 ...
- 常用json解析库比较及选择 fastjson & gson
一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...
- Qt5---ftp上传功能(使用组合的办法实现功能,QNetworkAccessManager自动管理分片上传,用QLoggingCategory屏蔽SSL警告)
从Qt的版本进化中可以知道,在Qt4中的QFtp类到了Qt5中已经没有了,虽然可以通过在Qt5中自己编译出QFtp,但是Qt5中提供的QNetworkAccessManager在发送和请求网络方面 ...
- 任何一件事,如果你不投入时间和精力去驯养,就不可能产生真正的兴趣和热爱(Focus Feedback FixIt的原理) good
这两本书和我们说的兴趣结合起来,为我们指明了精进的道路: 选择一个你感兴趣的方向 刻意练习 持续投入时间和精力 所谓刻意练习,简单说就是“3F”,即: Focus Feedback Fix it Fo ...
- Qt第三方圆形进度条-及其改进
Qt第三方圆形进度条的改进 要实现一个圆形的进度条功能,在网上找到一个比较出名的第三方封装类:QRoundProgressBar,地址:sourceforge 的 QRoundProgressBar ...
- VS2010下编译配置Boost_1.53
一.准备工作 1.下载最新版本的boost库.所在地址:boost_1_53_0.zip.官方推荐7z压缩格式的,因为其压缩效率更好,相应包的大小也比较小. 2.解压缩到指定目录,如C:\boost_ ...
- 【产品】张小龙《微信背后的产品观》之PPT完整文字版
张小龙<微信背后的产品观>之PPT完整文字版 附:PPT下载地址:https://wenku.baidu.com/view/99d2910290c69ec3d5bb7573.html 微 ...
- pip升级到18.0版本过程中报错解决方法
我这台电脑是windows10系统,一般在cmd命令行界面下执行pip的升级命令:pip install –upgrade pip 安装的时候,会有拒绝访问报错:这个时候应该是权限的问题,于是在win ...
- echarts 中国地图标注所在点
达到的效果: 1.本身是个中国地图‘ 2.直接通过经纬度标注 3.标注点可以是其他样子(比如:五角星) 4.标注点具有提示框并且鼠标可以进入 5.提示框里的链接可点击(可以添加为链接事件): 所需要技 ...