BeautifulSoup入门
BeautifulSoup库入门
BeautifulSoup库的理解
BeautifulSoup库是解析、遍历、维护”标签树”的功能库
示例代码:
from bs4 import BeautifulSoup
soup = BeautifulSoup("<html>data</html>","html.parser")#第一参数是html文档,第二个参数指定parser类型是html.parser
soup2 = BeautifulSoup(open("d://demo.html"),"html.parser")
BeautifulSoup解析器
| 解析器 | 使用方法 | 条件 |
|---|---|---|
| bs4的html解析器: | BeautifulSoup(mk,’html.parser’) | 安装bs4库 |
| lxml的html解析器: | BeautifulSoup(mk,’lxml’) | pip install lxml |
| lxml的xml解析器: | BeautifulSoup(mk,’xml’) | pip install lxml |
| html5lib的解析器: | BeautifulSoup(mk,’html5lib’) | pip install html5lib |
BeautifulSoup类的基本元素
| 基本元素 | 说明 | 使用方式 |
|---|---|---|
| Tag | 标签,最基本的信息组织单元,分别用<>和表明开头和结尾 | soup.a soup.p soup.head soup.title |
| Name | 标签的名字, \…\<\/p> 的名字是p,格式.name | soup.a.name soup.p.name soup.div.name |
| Attribute | 标签的属性,字典形式组织,格式: .attrs | soup.a.attrs soup.div.attrs |
| NavigableString | 标签内非属性字符串,<>中字符串,格式:.string | soup.a.string soup.p.string |
| Comment | 标签内字符串的注释部分 | soup.a.string(会去掉!–和–,只显示注释内容,但是用type(soup.a.string)会返回) |
使用BeautifulSoup遍历HTML DOM树
| 属性 | 说明 |
|---|---|
| .contents | 子节点的列表,将说有儿子节点存入列表 |
| .children | 子节点的迭代类型,与.contents类似,用于遍历儿子节点 |
| .descendants | 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历 |
| .parent | 节点的父亲标签 |
| .parents | 节点所有祖先标签,用于循环遍历祖先节点 |
| .next_sibling | 返回按照HTML文本顺序的下一个平行节点标签 |
| .previous_sibling | 返回按照HTML文本顺序的上一个平行节点标签 |
| .next_siblings | 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签 |
| .previous_siblings | 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签 |
实例代码:
from bs4 import BeautifulSoup
import requests
response = requests.get("http://www.icourse163.org/learn/BIT-1001870001")
html = response.text
soup = BeautifulSoup(html,"html.parser")
tag = soup.a
print(tag.contents)#打印子节点列表
for child in tag.children:#迭代所有子节点
print(child)
for descendant in tag.descendants:#迭代所有子孙节点
print(descendant
print(tag.parent)#打印父亲节点
for parent in tag.parents:#迭代所有父节点
print(parent)
print(tag.next_sibling)#下一个兄弟节点
BeautifulSoup入门的更多相关文章
- python 中BeautifulSoup入门
什么是BeautifulSoup? Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的 ...
- 用python的BeautifulSoup分析html 【转】
原地址:http://www.cnblogs.com/twinsclover/archive/2012/04/26/2471704.html 序言 之前用python爬取网页的时候,一直用的是rege ...
- 爬虫(四):BeautifulSoup库的使用
一:beautifulsoup简介 beautifulsoup是一个非常强大的工具,爬虫利器. beautifulSoup “美味的汤,绿色的浓汤” 一个灵活又方便的网页解析库,处理高效,支持多种解析 ...
- 用python的BeautifulSoup分析html
序言 之前用python爬取网页的时候,一直用的是regex或者自带的库sgmllib里的SGMLParser.但是遇到复杂一点的情况时,SGMLParser往往就不那么给力了!(哈,难道说我 too ...
- Goldeneye.py网站压力测试工具2.1版源码
Goldeneye压力测试工具的源代码,粗略看了下,代码写的蛮规范和易读的,打算边读边加上了中文注释,但是想来也没太大必要,代码600多行,值得学习的地方还是蛮多的,喜欢Python的同学可以一读 这 ...
- 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用
[爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...
- 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器
[网络爬虫入门04]彻底掌握BeautifulSoup的CSS选择器 广东职业技术学院 欧浩源 2017-10-21 1.引言 目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup ...
- 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用
[网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...
- 【网络爬虫入门01】应用Requests和BeautifulSoup联手打造的第一条网络爬虫
[网络爬虫入门01]应用Requests和BeautifulSoup联手打造的第一条网络爬虫 广东职业技术学院 欧浩源 2017-10-14 1.引言 在数据量爆发式增长的大数据时代,网络与用户的沟 ...
随机推荐
- 低功耗蓝牙(BLE)——概念
1. 种类 单模蓝牙:仅支持传统蓝牙和BLE(低功耗蓝牙)中的一种: 双模蓝牙:同时支持传统蓝牙和BLE(低功耗蓝牙). 2. 部署方案 3. 节点类型 根据蓝牙协议不同的协议层有不同的角色 1. S ...
- Nginx代理服务——反向代理
Nginx可以代理的服务 正向代理,例如翻墙 反向代理 正向和反向代理的区别 区别在于代理的对象不一样 正向代理:代理的对象是客户端 反向代理:代理的对象是服务器 配置语法 Synta ...
- AVR单片机教程——串口发送
本文隶属于AVR单片机教程系列. 到目前为止,我们的开发板只能处理很小量的数据:读取几个引脚电平,输出几个LED,顶多用数码管显示一个两位数字.至于输入一个指令.输出一条调试信息,甚至用scanf ...
- Redis常用命令详细介绍
一.字符串 字符串键是Redis最基本的键值对类型,将一个单独的键和一个单独的值关联起来.通过字符串键,不仅可以存储和读取字符串,如果输入能被解释为整数和浮点数,还能执行自增或自减操作. 1.SET: ...
- [LOJ#3022][网络流]「CQOI2017」老 C 的方块
题目传送门 定义有特殊边相邻的格子颜色为黑,否则为白 可以看出,题目给出的限制条件的本质是如果两个小方块所在的格子 \(x\) 和 \(y\) 为两个相邻的黑格,那么 \(x\) 和 \(y\) 之间 ...
- Python处理URL编码
我们在访问网站时,有很多连接都是有一些特殊符号组成,例如,我在百度搜索“大鱼海棠”,结果可以看到它的搜索出来的链接是: https://www.baidu.com/s?wd=%E5%A4%A7%E9% ...
- ASP.Net Core 发布到IIS Http Error 502.5 官方解决办法
Http Error 502.5 - Process Failure 在IIS上发布.NET Core程序出现这个错误.网上搜索到的办法为什么总行不通呢? 有可能年代久远,现在的环境与当年不同,所以解 ...
- tomcat+jenkins搭建持续化集成环境
一.下载安装Tomcat 1.进入官网http://tomcat.apache.org/ 2.解压缩文件到指定目录 3.设置环境变量 a.新建CATALINA_HOME b.在path中设置 %CAT ...
- java.net.UnknownHostException 异常处理(个人案例)
案例 今天在公司开发中,遇到一个比较奇怪的异常 ,java.net.UnknownHostException 异常处理 ,一直没找到什么好的办法解决 解决方案 在公司的项目开发中,项目都是连了很多个 ...
- 2020 University Rankings US News(中国)
2020 University Rankings US News(中国)