网络爬虫_第二章_提取_第四单元_BeautifulSoup库入门(未完待续)
1.Beautiful Soup库的基本元素
Beautiful Soup库的理解
<p>..</p>: 标签:Tag<p> p指的是标签的名字, Name成对出现<p class="title">...</p>属性Attributes0个或多个(由键值对构成)
Beautiful Soup库的引用
引用方式from bs4 import BeautifulSoup使用方法from bs4 import BeautifulSoup1. soup = BeautifulSoup("<html>data<html>", "html.parser")2. soup = BeautifulSoup(open("D://demo.html"), "html.parser")BeautifulSoup对应一个HTML/XML文档的全部内容。
Beautiful Soup库解析器
soup = BeautifulSoup('<html>data</html>','html.parser')
分类
解析器 使用方法 条件bs4的HTML解析器 BeautifulSoup(mk,'html.parser') 安装bs4库lxml的HTML解析器 BeautifulSoup(mk,'lxml') pip install lxmllxml的XML解析器 BeautifulSoup(mk,'xml') pip install lxmlhtml5lib的解析器 BeautifulSoup(mk,'html5lib') pip install html5lib
Beautiful Soup类基本元素
<p class=“title”> … </p>
分类
基本元素 说明Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾Name 标签的名字,<p>…</p>的名字是'p',格式:<tag>.nameAttributes 标签的属性,字典形式组织,格式:<tag>.attrsNavigableString 标签内非属性字符串,<>…</>中字符串,格式:<tag>.stringComment 标签内字符串的注释部分,一种特殊的Comment类型
具体使用代码
1. 回顾demo.html
import requestsurl2 = "http://python123.io/ws/demo.html"r = requests.get(url2)demo = r.textprint(demo)打印输出# print(demo)<html><head><title>This is a python demo page</title></head><body><p class="title"><b>The demo python introduces several python courses.</b></p><p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:<a href="http://www.icourse163.org/course/BIT-268001" class="py1" id="link1">Basic Python</a> and <a href="http://www.icourse163.org/course/BIT-1001870001" class="py2" id="link2">Advanced Python</a>.</p></body></html>
2. Tag 标签
Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾
任何存在于HTML语法中的标签都可以用soup.<tag>访问获得
当HTML文档中存在多个相同<tag>对应内容时,soup.<tag>返回第一个
from bs4 import BeautifulSoup
import requestsurl = "http://python123.io/ws/demo.html"
r = requests.get(url)
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
print(soup.title)
tag = soup.a
print(tag)打印输出# print(soup.title)<title>This is a python demo page</title># print(tag)<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>
3. Tag的name(名字)
Name 标签的名字,<p>…</p>的名字是'p',格式:<tag>.name
每个<tag>都有自己的名字,通过<tag>.name获取,字符串类型
from bs4 import BeautifulSoupimport requestsurl2 = "http://python123.io/ws/demo.html"r = requests.get(url2)demo = r.textsoup = BeautifulSoup(demo, "html.parser")print(soup.a.name)print(soup.a.parent.name)print(soup.a.parent.parent.name)打印输出# print(soup.a.name)'a'# print(soup.a.parent.name)'p'# print(soup.a.parent.parent.name)'body'
4. Tag的attrs(属性)
Attributes 标签的属性,字典形式组织,格式:<tag>.attrs
一个<tag>可以有0或多个属性,字典类型
from bs4 import BeautifulSoup
import requests
url2 = "http://python123.io/ws/demo.html"
r = requests.get(url2)
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
tag = soup.a
print(tag.attrs)
print(tag.attrs['class'])
print(tag.attrs['href'])
print(type(tag.attrs))
print(type(tag))
打印输出# print(tag.attrs){'href': 'http://www.icourse163.org/course/BIT-268001', 'class': ['py1'], 'id': 'link1'}# print(tag.attrs['class'])['py1']# print(tag.attrs['href'])http://www.icourse163.org/course/BIT-268001# print(type(tag.attrs))<class 'dict'># print(type(tag))<class 'bs4.element.Tag'>
5. Tag的NavigableString
NavigableString 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
NavigableString可以跨越多个层次
from bs4 import BeautifulSoup
import requests
url2 = "http://python123.io/ws/demo.html"
r = requests.get(url2)
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
soup.a
print(soup.a.string)
print(soup.p)
print(soup.p.string)
print(type(soup.p.string))
打印输出# print(soup.a.string)Basic Python# print(soup.p)<p class="title"><b>The demo python introduces several python courses.</b></p># print(soup.p.string)The demo python introduces several python courses.# print(type(soup.p.string))<class 'bs4.element.NavigableString'>
6. Tag的Comment
Comment 标签内字符串的注释部分,一种特殊的Comment类型
Comment是一种特殊类型
from bs4 import BeautifulSoup
import requests
demo = "<b><!--This is a commet--></b><p>This is not a comment</p>"
newsoup = BeautifulSoup(demo, "html.parser")
print(newsoup.b.string)
print(newsoup.p.string)
print(type(newsoup.p.string))打印输出# print(newsoup.b.string)This is a commet# print(newsoup.p.string)This is not a comment# print(type(newsoup.p.string))<class 'bs4.element.NavigableString'>
2.Beautiful Soup库的基本元素
RRR
转载于:https://www.cnblogs.com/Robin5/p/11229881.html
网络爬虫_第二章_提取_第四单元_BeautifulSoup库入门(未完待续)相关推荐
- ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ...
- c语言运行时更入下一行,C语言高级语言程序设计(一)_第二章 C程序设计基础(二).ppt...
C语言高级语言程序设计(一)_第二章 C程序设计基础(二) * 问a,b能否交换?不能.示例 传值调用 如何改变参数的值?在后续章节中介绍 下:传值 * 传值的好处 下:问题3.2 * * * 使用范 ...
- 微型计算机控制数字量输入输出,[工学]WX_微型计算机控制技术_第二章5.ppt
[工学]WX_微型计算机控制技术_第二章5 数字量输出驱动电路 三极管驱动电路 继电器驱动电路 晶闸管驱动电路 固态继电器驱动电路 达林顿驱动电路 微型计算机控制技术 第2章 输入/输出接口与过程通道 ...
- Python爬虫学习第二章-1-requests模块简介
Python爬虫学习第二章-1-requests模块简介 这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...
- python爬虫requests源码链家_python爬虫——爬取链家房价信息(未完待续)
爬取链家房价信息(未完待续) items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # ...
- 深度学习(三十四)对抗自编码网络-未完待续
占坑,未完待续-- 上面是网络结构.上半部分是一个自编码结构,给定输入数据X,我们经过编码层,可以得到编码层的数据分布q(z|x)的一个采样潜变量编码z.在以前我们的自编码分布q(z|x)是固定的,现 ...
- 学完oracle 再学mysql_一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- 微信小程序零基础入门_第二章 小程序框架_逻辑层
第二章 小程序框架_逻辑层 2.1 逻辑层 小程序开发框架的逻辑层是基于JavaScript进行编写和实现的.在开发过程中写的所有代码,最终都被整合成一份JavaScript,在小程序启动的时候开始执 ...
- 计算机网络_第二章:物理层
第二章:物理层 大纲考点: 1.通信基础 -清楚每个代表的是什么 信道.信号.带宽.码元.速率.信源.信宿. 奈奎斯特定理,香农定理(核心考点) 编码与调制 电路交换,报文交换,分组交换(三种交换方式 ...
最新文章
- C#连接各类数据库 [转]
- java 学习笔记2022.1.26
- 《零基础》MySQL 排序(十八)
- Android开发指南中文版(十三)User Interface-Notifications
- linux_ls命令详解
- BASIC-14_蓝桥杯_时间转换
- 从事 Android 开发六年,我学到的那些事!
- 怎样阻止电脑开机自动安装大量垃圾软件
- php实现加密解密,php实现加密与解密的原理与用法
- 神界计算机丢失msvcp120.dll,win8 msvcp120.dll丢失怎样修复?计算机中丢失msvcp120.dll处理办法...
- 《C#高级编程》笔记系列--点滴记录(持续更新中……)
- 解决方法:Linux装完显卡驱动后分辨率显示不正常
- 怎么设置ppt页面的长度和宽度_FL Studio采样器该怎么设置? FL采样设置页面详解。...
- maven配置项目根路径_Java的项目构建工具Maven的配置和使用教程
- Anaconda下载太慢问题解决
- 一款简单的取色器:ObtainColor拾色器
- git Pull Request 是什么意思?
- 设计模式实例php,PHP三种设计模式实例教程
- [java]自动生成指定长度的英文名字
- css为中英文设置不同的字体
热门文章
- kafka 在 360 商业化的实践
- Python快速调用Teambition接口
- Python浅谈gevent实现协程
- 进程间通信——Queue
- ExtJs2.0学习系列(11)--Ext.XTemplate
- 漫步凸分析一——仿射集
- python mpi 多节点_python – 如何找到MPI(4PY)可用的内核数量?
- leetcode —— 面试题67. 把字符串转换成整数
- Matlab 图像采集工具的使用 - Image Acquisition Toolbox【IAT】 + 大恒相机的应用【1】+多个摄像头支持
- STM32 - 定时器的设定 - 基础 - 05 - Arbitrary waveform generation using timer DMAburst feature - 任意波形的序列产生