python_解析_bs4_附练习源码

 源码在最后面

目录

1.pycharm_bs4下载(超级简单方法)

2.bs4基本练习

2.1创建bs4本地html案例

2.2 根据标签名查找节点

2.3 bs4的find()函数方法_返回一个对象

2.4 bs4的find_all()函数方法_返回一个列表

2.4 bs4的select()函数方法_返回一个列表

2.5节点信息

2.6 练习源码

1.pycharm_bs4下载(超级简单方法)

python_解析_bs4_附练习源码_第1张图片

 python_解析_bs4_附练习源码_第2张图片

 选项里面的网址:Simple Index

python_解析_bs4_附练习源码_第3张图片

2.bs4基本练习

2.1创建bs4本地html案例




    
    Title


    
百度
hahhahahhahah

heheheheheh

2.2 根据标签名查找节点

python_解析_bs4_附练习源码_第4张图片

2.3 bs4的find()函数方法_返回一个对象

python_解析_bs4_附练习源码_第5张图片

 增加查找条件title

  增加查找条件class

python_解析_bs4_附练习源码_第6张图片

2.4 bs4的find_all()函数方法_返回一个列表

python_解析_bs4_附练习源码_第7张图片

如果想获取多个标签,那么需要在find_all的参数中添加列表数据

python_解析_bs4_附练习源码_第8张图片

如果想获取前2个li标签,需要加上limit参数

2.4 bs4的select()函数方法_返回一个列表

python_解析_bs4_附练习源码_第9张图片

可以通过.代表class_这种操作称为类选择器

python_解析_bs4_附练习源码_第10张图片

可以通过#代表id_这种操作称为id选择器

python_解析_bs4_附练习源码_第11张图片

属性选择器——查找到li标签中有id的标签

python_解析_bs4_附练习源码_第12张图片

属性选择器——查找到li标签中有id为l2的标签_注意单引号里面的为双引号

层级选择器——后代选择器_找到div下面的li

python_解析_bs4_附练习源码_第13张图片

层级选择器——子代选择器——某标签的第一级子标签

层级选择器——找到a标签和li标签

python_解析_bs4_附练习源码_第14张图片

2.5节点信息

节点信息——获取节点内容

一定要记住obj是一个列表数据

python_解析_bs4_附练习源码_第15张图片

python_解析_bs4_附练习源码_第16张图片

python_解析_bs4_附练习源码_第17张图片

python_解析_bs4_附练习源码_第18张图片

2.6 练习源码

from bs4 import BeautifulSoup

#解析本地文件 进行bs4的基础练习
#默认打开文件的格式为gbk,所以需要指定编码
soup = BeautifulSoup(open('bs4本地案例.html',encoding='utf-8'),'lxml')

#根据标签名查找节点
#找到第一个符合条件的数据
# print(soup.a)
#获取标签的属性和属性值
# print(soup.a.attrs)

#bs4的find()函数方法_返回第一个符合条件的数据
# print(soup.find('a'))

#bs4的find()函数方法_增加查找条件title
# print(soup.find('a',title='a2'))

#bs4的find()函数方法_增加查找条件class_
#注意class要加下划线
# print(soup.find('a',class_='a1'))


#bs4的find_all()函数方法_返回一个列表
#返回所有的a标签
#print(soup.find_all('a'))
#如果想获取多个标签,那么需要在find_all的参数中添加列表数据
# print(soup.find_all(['a','span']))

#如果想获取2个li标签,需要加上limit参数
# print(soup.find_all('li',limit=2))

#bs4的select()函数方法_返回一个列表
#返回所有的a标签
# print(soup.select('a'))

#可以通过.代表class_这种操作称为类选择器
# print(soup.select('.a1'))

#可以通过#代表id_这种操作称为id选择器
# print(soup.select('#l1'))

# 属性选择器_通过属性来选择对应的标签
# 查找到li标签中有id的标签
# print(soup.select('li[id]'))

# 查找到li标签中有id为l2的标签_注意单引号里面的为双引号
# print(soup.select('li[id="l2"]'))

#层级选择器
#后代选择器_找到div下面的li
# print(soup.select('div li'))

#子代选择器——某标签的第一级子标签
# print(soup.select('div>ul>li'))

# 找到a标签和li标签
# print(soup.select('a,li'))

#节点信息——获取节点内容
obj = soup.select('#d1')
#如果标签对象中 只有内容 那么string和get_text()都可以使用
# 如果在标签对象中 除了内容还有标签 那么string 就获取不到数据 而get_text()可以获取数据
# 所以在一般情况下推荐使用get_text()
# print(obj[0].string)
# print(obj[0].get_text())

#节点信息——获取节点的属性
obj = soup.select('#p1')
#name是标签的名字
# print(obj[0].name)
#将属性值作为一个字典返回
# print(obj[0].attrs)
print(obj[0].attrs.get('class'))
print(obj[0].get('class'))
print(obj[0]['class'])

你可能感兴趣的:(python自学,python,开发语言)