import requests
from bs4 import BeautifulSoup
res = requests.get(url = "https://movie.douban.com/top250",headers={'User-Agent': 'BaiduSpider'})
# 此时的res返回的是状态码
# print(res)
# 加载到BeautifulSoup中的对象必须是html类型的对象,
soup = BeautifulSoup(res.text,'html.parser')
# print(soup)
# 提供用于解析的方法和属性
# print(soup.div.li) #返回文档中第一次出现的div.li对应的标签
# print(soup.find('li')) #等同于soup.li
# 返回所有的符合要求的标签(列表)
# print(soup.find_all('div',class_='pic'))
# 层级选择器
# print(soup.select('div')) #返回一个列表
# print(soup.select('div>a>span')) # > 表示一个层级
# print(soup.select('div span')) # 空格 表示多个层级
# 获取标签中间的文本
# 文本的获取要落实到每一个标签上,所以需要遍历获得的列表
# text/get_text() 可以获取某一个标签周昂所有文本内容
# string 只能获得该标签下面直系的文本内容
# 获取标签中的属性值
print(soup.div.a['href']) #只返回第一个,相当于find
print(soup.find_all('a',"href"))
# 获取属性
for ul in soup.find_all('div',class_='hd'):
print(ul.a['href'])
# for ul in soup.select('a'):
# print(ul['href'])
#
# # 使用find_all来定位
# # print(soup.find_all(class_="title"))
#
# # 使用select来定位
# print(soup.select(".title")[0].get_text()) #类标签
# 要获取到文本信息必须要落实到每一个定位位置上,在集合中不能转变文本
# print(soup.select(".hd > a > span"))
# print(soup.select(".hd span")) # > 标识一个层级,空格表示多个层级
#
#
# #获取属性
# print(soup.a['href'])
bs4初级应用
最新推荐文章于 2023-01-31 17:27:57 发布