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网页解析库的更多相关文章

  1. 【Python爬虫】BeautifulSoup网页解析库

    BeautifulSoup 网页解析库 阅读目录 初识Beautiful Soup Beautiful Soup库的4种解析器 Beautiful Soup类的基本元素 基本使用 标签选择器 节点操作 ...

  2. 网页解析库-Xpath语法

    网页解析库 简介 除了正则表达式外,还有其他方便快捷的页面解析工具 如:lxml (xpath语法) bs4 pyquery等 Xpath 全称XML Path Language, 即XML路径语言, ...

  3. Python网页解析库:用requests-html爬取网页

    Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...

  4. 第四节:Web爬虫之pyquery解析库

    PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...

  5. Python的网页解析库-PyQuery

    PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...

  6. Python3编写网络爬虫06-基本解析库Beautiful Soup的使用

    二.Beautiful Soup 简介 就是python的一个HTML或XML的解析库 可以用它来很方便的从网页中提取数据 0.1 提供一些简单的 python式的函数来处理导航,搜索,修改分析树等功 ...

  7. Python3编写网络爬虫07-基本解析库pyquery的使用

    三.pyquery 简介:同样是一个强大的网页解析工具 它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便 安装: pip install pyquery 验证: im ...

  8. 【Python爬虫】PyQuery解析库

    PyQuery解析库 阅读目录 初始化 基本CSS选择器 查找元素 遍历 获取信息 DOM操作 伪类选择器 PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎 ...

  9. 第二节:web爬虫之lxml解析库

    lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.

随机推荐

  1. 拦截导弹简单版——线性dp

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  2. ansible使用shell模块在受控机上执行命令(ansible2.9.5)

    一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...

  3. ASP.NET实现进度条效果【转】

     原文地址:http://www.jb51.net/article/115310.htm 这篇文章主要为大家详细介绍了ASP.NET实现简单的进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...

  4. npm install 几种不同后缀安装模式的区别

    --save/--save --dev/nothing / -g 区别,及package.json基本目录结构介绍 https://www.jianshu.com/p/e10f981972ff

  5. Vue踩坑日记-Element this.$message 找不到模块

    在使用Vue.js的 Element框架时,无法使用Message组件 浏览器提示:找不到组件 原始写法: this.$message({ message: '恭喜你,这是一条成功消息', type: ...

  6. mysql复制一个表到其他数据库

    db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名1.方法一:登录导出到的数据库,执行create table fromtable select * from db1.fr ...

  7. JS里的小细节,持续更新

    判断把值定为 false 集合 JavaScript里把 null.undefined.0.''.NaN 都视为false,而其他值一概为 true Map Map是一组键值对的结构,具有极快的查找速 ...

  8. apktool的下载,安装,反编译和重新打包

    一.环境要求 安装java 1.8 以上 命令行运行 java -version 返回版本大于1.8 如果没有,请安装java 1.8 二.下载与安装 下载apktool_x.x.x.jar到本地 官 ...

  9. Stream(二)

    public class Test { /* * Stream接口: * 实现类 * IntStream * DoubleStream * LongStream * * 一.创建Stream * 1. ...

  10. 实用!8个 chrome插件玩转GitHub,单个文件下载小意思

    作为程序员对 GitHub 应该都不会陌生,我经常沉迷其中,找一些惊艳的项目或者工具.不过用的时间久了,发现它的用户体验实在是不敢恭维,有时候会让你做很多重复操作,浪费不少时间. 比如我想单独下载一个 ...