#author:Adminstrator
#date: 2019/8/20
from bs4 import BeautifulSoup
#生成对象
#soup= BeautifulSoup(open('美味汤.html'), 'lxml')
soup = BeautifulSoup(open('美味汤.html', encoding='utf8'), 'lxml')
#print(soup)#soup对象中有__str__方法,虽然soup是对象类型,但打印出的事字符串
#1.根据标签名进行查找,只能找到第一个
#print(soup.div)
# #2、获取属性
# print(soup.a['href'])
# print(soup.a['title'])
# print(soup.a['target'])
# print(soup.a.attrs)#字典形式返回所以属性
# print(soup.a.attrs['href'])
#
# #3 获取内容
# print(soup.a.text)
# print(soup.a.string)
# print(soup.a.get_text())
# print(soup.div.text)
# print(soup.div.string)#如果标签还有标签,那么string获取到的结果为None,而其他两个,可以获取文本内容
# print(soup.div.get_text())
#4.find方法
# print(soup.find('a'))#找到第一个符合要求的a
# print(soup.find('a', title='qin'))#title='qin'的a标签
# #print(soup.find('a',class="du"))#class为python关键字,不能用
# print(soup.find('a',class_="du"))#改成class_
#
# div=soup.find('div',class_='tang')
# print(div.find('a',class_='du'))#找的是div里面符合要求的a
'''
find 方法不仅soup可以调用,普通的div对象也可以调用,会去指定的div里面去查找符合要求的节点
find只能找到范围内第一个符合要求的标签
'''
#5、find_all用法,找到所有的a标签
# print(soup.find_all('a'))
# print(soup.find_all('a'), len(soup.find_all('a')))
div = soup.find('div', class_='tang')
#print(div.find_all('a'))
# print(div.find_all(['b', 'i']))#以列表形式返回
# print(div.find_all('a',limit=2))#找到所以取前两个
#6、select用法
#print(soup.select('.tang>ul>li>a'))#返回的是一个列表
# print(soup.select('.tang>ul>li>a')[2])
# print(soup.select('#feng'))#id选择器,返回一个列表
print(soup.select('#feng')[0].text)#取文本
print(soup.select('#feng')[0]['href'])
bs4使用
最新推荐文章于 2024-03-10 20:07:04 发布