首页 > 其他分享 >BeautifulSoup解析数据的属性与方法

BeautifulSoup解析数据的属性与方法

时间:2023-01-08 09:55:32浏览次数:43  
标签:标签 BeautifulSoup soup div 解析 find select 属性

 

 1 功能描述
 2 pip install bs4
 3 pip install lxml
 4 
 5 1.实例化一个BeautifulSoup对象,并且将页面源代码数据加载到该对象中
 6 可以将本地的html文档中的数据加载到该对象中
 7 fp= open('test.html','r',encoding='utf-8')
 8 soup = BeautifulSoup(fp,'lxml')
 9 第一个参数为文件源代码,第二个参数为解码方式,不变
10 也可以将互联网上获取的页面源代码加载到该对象中
11 
12 2.通过调用BeautifulSoup对象中的相关方法或者属性进行标签定位和数据提取
13 
14 '''
15 from bs4 import BeautifulSoup
16 fp = open('test.html','r',encoding='utf-8')
17 soup = BeautifulSoup(fp,'lxml')
18 # 提供的用于数据解析的方法或者属性有
19 #soup.tagName   标签名称
20 soup.div    #返回的是文档中第一次出现的标签,
21 # soup.find('标签名称'),返回的是文档中第一次出现的标签,和soup.div效果是一样的
22 soup.find('div')
23 # 属性定位
24 # 属性为class,但是要在这个属性名是关键字,所以后面加一个下划线_
25 # soup.find('div',class_/id/attr='song')
26 soup.find('div', class_='song')
27 # 返回所有a标签,类型为列表
28 soup.find_all('a')
29 # soup.select('.某种选择器(id,class,标签等)')
30 soup.select('.tang')
31 # 层级筛选器
32 soup.select('.tang>ul>li>a')    # >表示一个层级,类似于目录,返回是列表
33 soup.select('.tang>ul>li>a')[0] #表示返回列表的第一个元素
34 soup.select('.tang>ul>li>a')
35 soup.select('.tang>ul a')   # 标签ul与标签a之前有个空格,该空格表示的是多个层级,而>表示一个层级
36 # 获取标签之间的文本数据,或者属性值
37 # 调用方法或者属性
38 soup.a.text
39 soup.a.string
40 soup.a.get_text()
41 # 区别是:text/get_text()可以获取该标签下的所有文本内容,不是直系的也可以获取,而string只能获取该标签的直系内容。
42 soup.find_all('div', class_='song').text
43 soup.find_all('div', class_='song').string
44 # 获取该标签的属性值
45 soup.select('.tang>ul a')[0]['herf']

 

标签:标签,BeautifulSoup,soup,div,解析,find,select,属性
From: https://www.cnblogs.com/chengshu1258/p/17034131.html

相关文章