JSON
有类型键值对
带有引号
一对一 “key”:“value”
一对多 “key”:[“value1”,“value2”]
嵌套 “key”:{“subkey”:“subvalue”}
YAML
无类型键值对,没有任何引号和括号
常用于配置文件
缩进表示所属关系
"-"表示同级并列关系
key:value
key:#Comment
-value1
-value2
key:
subkey:subvalue
方法
< tag >.find_all(name,attrs,recursive,string…)
简写形式:< tag >(…)
比如soup.find_all(…)等价于soup(…)
name可以传入一个参数’a’,也可以以列表的形式传入多个参数[‘a’,‘b’]
若name传入的参数是true,则表示所有标签名称
attrs 标签的属性,可引入正则表达式re.compile()
recursive 是否对子孙全部检索,默认true,可用于判断目标标签是处于儿子位置还是子孙位置
string <>…</>中字符串区域的检索字符串
拓展方法:略去了 _all
< tag >.find() 搜索且只返回一个结果
< tag >.find_parents() 在先辈节点中搜索,返回列表类型
< tag >.find_parent() 在先辈节点中返回一个结果,字符串类型
< tag >.find_next_sinlings() 后续平行节点
< tag >.find_next_sinling()
< tag >.find_previous_siblings() 前序平行节点
< tag >.find_previous_sibling()
实例1:中国大学排行
代码结构:
getHTMLText() 从网络上获取大学排名的网页内容
fillUnivList() 提取网页内容中信息到合适的数据结构中,在这里使用列表
printUnivList() 利用数据结构展示并输出结构
import requests
from bs4 import BeautifulSoup #只引用了bs4库的BeautifulSoup类
import bs4
def getHTMLText(url):
try:
r=requests.get(url.timeout=