import requests
html=requests.get('url')
soup=BeautifulSoup(html.text,'lxml')
解析器的种类:
html.parser: python自带,但容错性不够高
lxml: 解析速度快,需额外安装(推荐使用)
xml: 同lxml库,支持xmlx文档
html5lib :最好的容错性,但速度稍慢
(一)使用Tag对象按照文档结构获取数据
soup.title #title元素
soup.p #第一个p
soup.p['class'] #p元素的class属性
soup.p.b #p元素下的b元素
soup.p.parent.name #p元素的父节点标签
搜索
(二)find_all 和 find选择器
(1)a=soup.find_all('标签',class_='属性') #找出所有的
a.text #获取内容
(2)b=soup.find('标签',class_='属性') #获取第一个
b.get_text() #获取内容
b.text #获取内容
(三)css选择器
soup.select('title') #通过标签获取元素
soup.select('.title') #通过class="title"来获取元素
soup.select('#link2') #通过id="link2"来获取元素
soup.select('html body p') #获取html下的body标签下的p标签中内容
soup.select('p,.text') #同时获取p标签和class="text"