1 信息标记的形式
1.1 XML
以标签的形式(类似于HTML)。
<!-- <标签(Tag)> 标签间字符串 <标签> --> <img src="china.jpg" size="10"> … </img> <!-- <标签名称(name) 属性(Attribute)> --> <name /> <!-- 没有标签间字符串的时候可以简写 -->
1.2 JSON
以键值对的形式。
"key":"value" "key":["value1","value2"] "key": {"subkey":"subvalue"}
1.3 YAML
无类型键值对的形式。
#注释 key : value key : ‐value1 ‐value2 key : subkey : subvalue
2 BeautifulSoup库的HTML内容查找方法
#准备好经过Bs4库处理的内容 import requests from bs4 import BeautifulSoup #从bs4库中引入BeautifulSoup类 r = requests.get('http://python123.io/ws/demo.html') demo = r.text soup = BeautifulSoup(demo,'html.parser')
find_all() 方法后有四个参数:(name, attrs, recursive, string, **kwargs)
,其中:
name
:对标签名称的检索字符串attrs
:对标签属性值的检索字符串,可标注属性检索recursive
:是否对子孙全部检索,默认Truestring
:字符串区域检索字符串
一些例子:
soup.find_all('a')#返回列表,包含所有a标签 soup.find_all(['a','b'])#列表,包含所有ab soup.find_all('p','course')#带有course属性值的所有p标签 soup.find_all(id='link1')#属性中查找id=1的所有标签 #只能精确查找,如果要部分查找,需要正则表达式库 import re soup.find_all(id=re.compile('link'))#以link开头 #简写形式 soup('a') #等价于 soup.find_all('a')