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),它返回一个列表类型,存储查找的结 ...
随机推荐
- 进程交互还可以使用QSharedMemory
官方例子: http://doc.qt.io/qt-5/qtcore-ipc-sharedmemory-example.html 查了一下,QSharedMemory没有自带任何信号.我的想法: 1. ...
- 通过使用URLEncoder与URLDecoder进行编码和解码
使用改方法必须导入 java.net包 <%@page import="java.net.*" %> 编码: 当要存储或者发送数据的时候使用,将编码后的字符串再发送或者 ...
- SAP HANA 开发模式 - 基于SAP HANA平台的多团队产品研发
“基本”开发模式 Windows: Unix/Linux: 在基本模式下我们可以通过regi来进行激活我们的object.Regi是一个类git功能的,方便和HANA repository交互的一个命 ...
- hadoop之hive建表语句备份
转自:https://blog.csdn.net/t___z/article/details/78492113 #!/bin/bash hive -e "use lbi;show table ...
- ElasticSearch2.3.1环境搭建哪些不为人知的坑
首先说明一点,大家最好不要用什么尝鲜版,用比稳定版就好了,要不麻烦不断,另外出了问题,最好去官网,或者google搜索,因为这样靠谱些,要不现在好多都是低版本的,1.4的什么的,结果按照安装,多少情况 ...
- BDC
TC:SHDB 复制到应用处并更改参数. 附上部分代码 * Batchinputdata of single transaction DATA: bdcdata LIKE bdcdat ...
- IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活
对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...
- H5 离线缓存的用法
H5离线缓存基础系列 1.什么是离线缓存 离线缓存:离线缓存可以将站点的一些文件缓存到本地,它是浏览器自己的一种机制,将需要的文件缓存下来,以便后期即使没有连接网络,被缓存的页面也可以展示. 2. ...
- .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...
- ECShop安装问题
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG 在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static ...