from bs4 import BeautifulSoup
import requests
soup = BeautifulSoup('<p>data</p>', 'html.parser')
'''
===BeautifulSoup类的基本元素
<p class=“title”> … </p>
基本元素 说明
Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾
Name 标签的名字,<p>…</p>的名字是'p',格式:<tag>.name
Attributes 标签的属性,字典形式组织,格式:<tag>.attrs
NavigableString 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
Comment 标签内字符串的注释部分,一种特殊的Comment类型
'''
'''
===bs4库的遍历功能
.contents .children .descendants 下行遍历
.parent .parents 上行遍历
.next_sibling .previous_sibling .next_siblings .previous_siblings 平行遍历
'''
'''
HTML基本格式
<html>
<head> <body>
<title> <p> <p>
<b> <a> <a> <>…</>
构成了所属关系,形成了标签的树形结构
'''
# ===信息标记与提取方法
'''
===三种形式
==XML
<person>
<firstName>Jiawei</firstName>
<lastName>Yan</lastName>
<address>
<streetAddr>江夏区藏龙岛</streetAddr>
<city>武汉市</city>
<zipcode>430205</zipcode>
</address>
<prof>Finance</prof><prof>Innovation</prof>
</person>
==JSON
{
“firstName”:“Jiawei”,
“lastName” :“Yan”,
“address” :{
“streetAddr” :“江夏区藏龙岛”,
“city” :“武汉市”,
“zipcode” :“430205”
},
“prof” :[ “Finance”,“Innovation”]
}
==YAML
firstName:Jiawei
lastName :Yan
address :
streetAddr :江夏区藏龙岛
city :武汉市
zipcode :430205
prof :
‐Finance
‐Innovation
===比较
XML 最早的通用信息标记语言,可扩展性好,但繁琐 Internet上的信息交互与传递
JSON 信息有类型,适合程序处理(js),较XML简洁 移动应用云端和节点的信息通信,无注释
YAML 信息无类型,文本信息比例最高,可读性好 各类系统的配置文件,有注释易读
'''
'''
===方法
方法一:完整解析信息的标记形式,再提取关键信息
XML JSON YAML
需要标记解析器,例如:bs4库的标签树遍历
优点:信息解析准确
缺点:提取过程繁琐,速度慢
方法二:无视标记形式,直接搜索关键信息
搜索
对信息的文本查找函数即可
优点:提取过程简洁,速度较快
缺点:提取结果准确性与信息内容相关
'''
# <>.find_all(name, attrs, recursive, string, **kwargs)
# name : 对标签名称的检索字符串
# attrs: 对标签属性值的检索字符串,可标注属性检索
# recursive: 是否对子孙全部检索,默认True
# string: <>…</>中字符串区域的检索字符串
for link in soup.find_all('a'):
print(link.get('href'))
BeautifulSoup 库 & 信息标记与提取方法
最新推荐文章于 2022-11-03 18:14:14 发布