Python_爬虫_BeautifulSoup网页解析库
BeautifulSoup网页解析库
from bs4 import BeautifulSoup
0.BeautifulSoup网页解析库包含 的 几个解析器
Python标准库【主要,系统自带;】
使用方法: BeautifulSoup(markup,"html.parser")【注:markup是html文档】
Python的内置标准库案例:
from bs4 import BeautifulSoup
soup = BeautifulSoup.(html,'html.parser')
print(soup.title.string)
lxmlHTML解析器
BeautifulSoup(markup,'lxml)
速度快、需要安装C语言库lxml XML解析器
使用方法:BeautifulSoup(markup,"xml")
速度快,唯一支持XML的解析器、需要安装C语言库html5lib
BeautifulSoup(markup,"html5lib")
容错性好,以浏览器的形式解析文档,生成html5格式的文档,但是速度慢
1.BeautifulSoup基本使用
#!/usr/bin/env python
# -*- coding:utf-8 -*-
html="""
<html>
<head>
<title>The Domouse's story</title>
</head>
<body>
<p class="title" name="Domouse"><b>The Domouse's story</b></p>
<p class="story">Once upon a time there were three little sisters;and their names were</p>
<a href="http://www.baidu.com">百度</a>
<p class="story">...</p>
</body>
</html>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')
#获取标签正文内容
print("标签内正文内容:" + soup.title.name)
#获取属性内容
print("属性内容" + soup.p.attrs['name'])
#获取内容
print("获取内容" + soup.p.string)
#获取嵌套内容(多个筛选条件)
print("获取嵌套内容" + soup.head.title.string)
#子节点 和 孙节点【重要,,当目标标签没有id 或 class时候必须用这个】
print("子节点" + soup.p.contents) #全部子节点,返回的是列表形式
print("子节点" + soup.p.contents[2]) #第三个一级子节点,不管是什么标签
#1. 子节点#子节点【迭代器,只能用循环形式拿到数据】
soup = BeautifulSoup(html,"lxml")
print(soup.p.children)
for i,child in enumerate(soup.p.children):
print(i,child)
#2.子孙节点
soup = BeautifulSoup(html,"lxml")
print(soup.p.descendants)
for i,child in enumerate(soup.p.descendants):
print(i,child)
#父节点 和 祖先借点
print(list(enumerate("父节点:" + soup.a.parent))) #父节点
print(list(enumerate("祖父节点:" + soup.a.parent))) #祖父点
#获取兄弟节点
print("后面的兄弟节点" + list(enumerate(soup.a.next_siblings))) #后面的兄弟节点
print("前面的兄弟节点" + list(enumerate(soup.a.previous_slblings))) #前面的兄弟节点
Python_爬虫_BeautifulSoup网页解析库的更多相关文章
- 【Python爬虫】BeautifulSoup网页解析库
BeautifulSoup 网页解析库 阅读目录 初识Beautiful Soup Beautiful Soup库的4种解析器 Beautiful Soup类的基本元素 基本使用 标签选择器 节点操作 ...
- 网页解析库-Xpath语法
网页解析库 简介 除了正则表达式外,还有其他方便快捷的页面解析工具 如:lxml (xpath语法) bs4 pyquery等 Xpath 全称XML Path Language, 即XML路径语言, ...
- Python网页解析库:用requests-html爬取网页
Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...
- 第四节:Web爬虫之pyquery解析库
PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...
- Python的网页解析库-PyQuery
PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...
- Python3编写网络爬虫06-基本解析库Beautiful Soup的使用
二.Beautiful Soup 简介 就是python的一个HTML或XML的解析库 可以用它来很方便的从网页中提取数据 0.1 提供一些简单的 python式的函数来处理导航,搜索,修改分析树等功 ...
- Python3编写网络爬虫07-基本解析库pyquery的使用
三.pyquery 简介:同样是一个强大的网页解析工具 它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便 安装: pip install pyquery 验证: im ...
- 【Python爬虫】PyQuery解析库
PyQuery解析库 阅读目录 初始化 基本CSS选择器 查找元素 遍历 获取信息 DOM操作 伪类选择器 PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎 ...
- 第二节:web爬虫之lxml解析库
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.
随机推荐
- oh my zsh 常用插件
date: "2020-10-18T12:36:00+08:00" title: "oh my zsh 常用插件" tags: ["zsh" ...
- Markdown基础知识
一 Markdown简介 Markdown是⼀种可以使⽤普通⽂本编辑器编写的标记语⾔,通过简单的标记语法,它可以使普通⽂本内容具有⼀定的格式,可以简单理解为纯⽂本格式的word. 软件⼀般⽤vscod ...
- 联赛模拟测试20 C. Weed
题目描述 \(duyege\) 的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,\(duyege\) 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在 ...
- 常用手册或官网的url
1.mysql--> https://www.mysql.com/ 2.菜鸟教程--> http://www.runoob.com 3.maven官网--> https://mave ...
- 常见的Python运行时错误
date: 2020-04-01 14:25:00 updated: 2020-04-01 14:25:00 常见的Python运行时错误 摘自 菜鸟学Python 公众号 1. SyntaxErro ...
- webpack4的安装使用
1.全局安装Webpack 安装到全局后你可以在任何地方共用一个 Webpack 可执行文件( 也就是说可以直接在终端使用webpack的命名 ,例如:webpack --config webpack ...
- Pytorch加载并可视化FashionMNIST指定层(Udacity)
加载并可视化FashionMNIST 在这个notebook中,我们要加载并查看 Fashion-MNIST 数据库中的图像. 任何分类问题的第一步,都是查看你正在使用的数据集.这样你可以了解有关图像 ...
- Jenkins配置,tomacat版本输出乱码和页面打开报404的问题
1.打开tomact下的startup.bat,tomcat版本控制台中文输出乱码,解决方法是去tomacat安装路径下的conf目录,打开logging.properties文件,将java.uti ...
- python实现非常有趣的数学问题
1.无重复数字的三位数 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? import itertools ret = [] for i in range(1, 5) ...
- 【快速因数分解】Pollard's Rho 算法
Pollard-Rho 是一个很神奇的算法,用于在 $O(n^{\frac{1}4}) $的期望时间复杂度内计算合数 n 的某个非平凡因子(除了1和它本身以外能整除它的数).事书上给出的复杂度是 \( ...