当前位置: 首页 > news >正文

地板网站模板免费下载如何打造网站

地板网站模板免费下载,如何打造网站,营销培训课程内容,网络运营专员主要做什么工作目录 1、Beautiful Soup 2、解析数据 3、遍历文档树 4、搜索文档树 一、Beautiful Soup 1、什么是Beautiful Soup 定义:Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库. 功能:它能够通过你喜欢的转换器实现惯用的文档导航,查找,修…

目录

1、Beautiful Soup

2、解析数据

3、遍历文档树

4、搜索文档树



一、Beautiful Soup

1、什么是Beautiful Soup

定义:Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.

功能:它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.

优点:Beautiful Soup会帮你节省数小时甚至数天的工作时间.

2、解析器

Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器:

解析器使用方法优势劣势
Python标准库BeautifulSoup(markup, "html.parser")Python的内置标准库执行速度适中文档容错能力强Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差
lxml HTML 解析器BeautifulSoup(markup, "lxml")速度快文档容错能力强需要安装C语言库
lxml XML 解析器BeautifulSoup(markup, ["lxml-xml"])``BeautifulSoup(markup, "xml")速度快唯一支持XML的解析器需要安装C语言库
html5libBeautifulSoup(markup, "html5lib")最好的容错性以浏览器的方式解析文档生成HTML5格式的文档速度慢不依赖外部扩展

3、安装与配置

# 安装requests模块
pip install requests==2.10.0


# 安装beautiful soup4
pip install bs4


# 安装lxml解析器
pip install lxml

二、解析数据

1、标签

每个tag都有自己的名字,通过soup.name来获取标签。

# 获取p标签
p = soup.p
print(p)
# 获取title标签
title = soup.title
print(title)

注意:如果有多个相同的标签,则会返回第一个。

2.1属性

一个标签可能有很多个属性。例如:标签 <b class="boldest"> 有一个 class 的属性,值为 boldest 。标签的属性的操作方法与字典相同。

  • 获取指定标签的单一属性,类似字典方式

# 获取p标签的class属性
attrs = soup.p["class"]
print(attrs)

注意:最常见的多值的属性是 class (一个标签可以有多个CSSclass). 还有一些属性 rel , rev , accept-charset , headers , accesskey . 在Beautiful Soup中多值属性的返回类型是list

  • 获取指定标签的单一属性,通过attrs方式

# 通过attrs获取p标签的id属性
id_ = soup.p.attrs["id"]
print(id_)
  • 获取指定标签的所有属性:

# 获取指定标签的所有属性
p_attrs = soup.p.attrs
print(p_attrs)

2、标签内容

通过.text.string获取标签节点的内容,也可以通过.strings获取标签节点下的所有内容。

# 获取单个标签的内容
text = soup.p.text
print(text)
print(soup.p.string)
# 获取该标签下所有的内容,返回generator生成器
strings = soup.div.strings
for st in strings:print(st)

三、遍历文档树

1、子节点

标签小技巧获取层级子节点:

# tag小技巧获取层级子节点
print(soup.body.div.p)

.contents:将标签的子节点以列表的方式输出

# 获取div标签下的所有子节点
print(soup.body.div.contents)# 获取div标签下的第二个子节点
print(soup.body.div.contents[1])# 获取div标签下的第二个子节点的标签名
print(soup.body.div.contents[1].name)# 获取div标签下的第二个子节点的所有属性
print(soup.body.div.contents[1].attrs)

.children:对标签的子节点进行循环

# 获取div下的的子节点
children = soup.body.div.children
print(children)
# 循环打印节点信息
for child in children:print(child)
​

.descendants:对所有标签的子孙节点进行递归循环

descendants = soup.body.descendants
for des in descendants:print(des)

2、父节点

.parent:获取某个元素的父节点

print(soup.p.parent)

.parents:递归得到元素的所有父辈节点

parents = soup.p.parents
for p in parents:
   print(p)

3、兄弟节点

.next_sibling:获取下级单个兄弟节点

print(soup.p.next_sibling.next_sibling)

.previous_sibling:获取上级单个兄弟节点

print(soup.body.previous_sibling.previous_sibling)

注意:在使用.next_sibling.previous_sibling获取单个兄弟节点时,兄弟节点之间存在顿号和换行符的可能!!!

四、搜索文档树

1、find

find方法,语法格式如下:

find( name , attrs , recursive , string , **kwargs )

参数说明:

参数说明
name需要查找的标签名,可以是字符串、正则表达式、列表或True
attrs需要查找的标签的属性,可以是字典类型或关键字参数
recursive是否递归地搜索子标签,默认为True,即会搜索所有子孙标签
string需要查找的标签中包含的文本内容
kwargs其他属性条件

通过find方法搜索指定的标签。

print(soup.find('p', class_="aa"))
print(soup.find('p', class_="aa", id="username"))

注意:class类样式的处理。

True 可以匹配任何值,如下示例返回第一个节点:

print(soup.find(True))

2、find_all

find_all()方法的基本语法如下:

find_all(name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs)

参数说明:

参数说明
name需要查找的标签名,可以是字符串、正则表达式、列表或True
attrs需要查找的标签的属性,可以是字典类型或关键字参数
recursive是否递归地搜索子标签,默认为True,即会搜索所有子孙标签
text需要查找的标签中包含的文本内容
limit限制返回的结果数量,可以传入一个整数值

返回值:

  • 如果找到满足条件的元素,则返回一个包含这些元素的列表。

  • 如果未找到满足条件的元素,则返回一个空列表。

find_add方法搜索当前标签下所有子节点,并判断是否符合过滤器的条件。

all = soup.find_all('p')
for a in all:print(a)
print(soup.find_all(["p", "input"]))

3、css选择器

Beautiful Soup支持大部分的CSS选择器。TagBeautifulSoup 对象的 .select() 方法中传入字符串参数, 即可使用CSS选择器的语法找到标签:

print(soup.select("title"))
print(soup.select("body div"))
print(soup.select("p.aa"))
http://www.yayakq.cn/news/703128/

相关文章:

  • 网站开发佛山免费正版高清素材库
  • 佛山外贸网站建设软件开发文档工具
  • 电商网站如何做seo安卓和网站开发找工作
  • 网站开发研究的方法与技术路线网页美工设计实训
  • 桂平网站设计东坑镇做网站
  • 网站平面设计dedecms 网站地图 模板
  • 专业网站策划宾馆网站制作
  • 影视传媒网站源码建设公司网站的步骤
  • 上街免费网站建设wordpress 创业
  • 网站开发提案模板网站的风格有哪些
  • WordPress网站htm地图淮南网红小长城
  • 网站怎么做pc导流页网络营销的主要内容是什么
  • 网站开发 word文件预览wordpress主题安装教程
  • 开发区网站建设工作管理办法网站外链多的危害
  • 专业的河南网站建设价格低中国空间站叫什么名
  • 有哪些企业可以做招聘的网站有哪些内容wordpress不显示评论框
  • 鸣蝉网站建设公司wordpress的文章标签怎么用
  • 自己做网站不用WordPress业务推广方式
  • 海外网站推广方法东莞横沥网站建设
  • 怎么找响应式网站如何提高网站的收录率和收录量
  • 网站子站建设合同样本如何做外贸网站优化推广
  • 企业网站分类举例网店美工设计实训步骤
  • 网站建设发好处html注册页面代码
  • 百度网站推广费用多少钱安徽省干部建设教育网站
  • 城乡建设部网站施工员证书查询app软件开发就是网站开发吗
  • 网站建设 外包 厦门常宁市城市建设规划管理局网站
  • 企业网站营销优缺点上海网站建设永灿14年品牌
  • 成都优化网站关键词建设网站交流
  • 手机网站底部悬浮菜单wordpress 禁用wpjson
  • 做网站的外包能学到什么qq炫舞做浴缸的网站