1.本周学习内容思维导图
2.Beautiful Soup 解析器
3.Beautiful Soup 类及其基本元素
简略地说,Beautiful Soup类就是对应网站的标签树,或者说
HTML文件
Beautiful Soup的基本元素可见下表
- Tag
先看一段代码
>>> import requests
>>> from bs4 import BeautifulSoup
>>> r = requests.get('http://www.baidu.com')
>>> soup = BeautifulSoup(r.text, 'html.parser')
>>> soup.a
<a class="mnav" href="http://news.baidu.com" name="tj_trnews">��</a>
>>> soup.p
<p id="lh"> <a href="http://home.baidu.com">å
³äº�ç�¾åº¦</a> <a href="http://ir.baidu.com">About Baidu</a> </p>
在上面的代码中,我们通过requests.get()
方法获得百度链接,然后将r.text
熬成一锅汤(soup),使其成为BeautifulSoup
类的实例soup
而soup.a
就是返回一个叫做a
的Tag
,若Soup里面有多个叫a
的标签,则返回第一个
- Name
>>> soup.a.name # 返回标签a的名字
'a'
- Attributes
>>> soup.a.attrs
{'href': 'http://news.baidu.com', 'name': 'tj_trnews', 'class': ['mnav']}
返回a标签的属性,以字典的形式存储
- NavigableString
>>> soup.a.string
'æ\x96°é\x97»'
返回标签里面<>..</>
中的字符串
- Comment
4.HTML基本格式
- 下行遍历
- 上行遍历
- 平行遍历
5.信息标记
信息标记有三种种类XML
,JSON
,YAML
- XML
<person>
<firstName>Ming</firstName>
<lastName>Li</lastName>
<address>
<streetAddr>孝陵卫200号</streetAddr>
<city>南京</city>
<zipcode>210094</zipcode>
</address>
</person>
- JSON
"key":"value"
"key":["value1","value2"]
"key":{"subkey":"subvalues"}
- YAML
key : value
key : #Comment
-value1
-value2
key:
subkey : subvalue
6.<>find_all()
函数及其拓展
返回内容以列表形式存储
注意 : 以下表达方法等价
其他拓展的find方法