bs4解析数据
- bs4解析原理
- 实例化一个BeautifulSoup的对象,且将带解析的页面源码数据加载到该对象中;
- 调用BeautifulSoup对象中相关方法或者属性进行标签定位和文本数据的提取;
- 环境安装:
- pip install lxml #解析器
- pip install bs4
- BeautifulSoup对象的实例化:
- BeautifulSoup(fp,‘lxml’):用来将本地存储的html文件中的数据进行解析;
- BeautifulSoup(page_text,‘lxml’):用来将互联网上请求到的页面源码数据进行解析
- 标签定位:
- soup.tagName:只能定位到第一次出现的tagName标签
- soup.find(‘tagName’,attrName=‘value’):属性定位 (class需要加_)
- soup.findAll: 跟find一样用作属性定位,只不过findAll返回的是list,find返回的是str
- soup.select(‘选择器’)
- 类选择器
- id选择器
- 层级选择器
- ‘>’ : 表示一个层级
- 空格:表示多个层级
- 取数据
- .text:返回该标签下所有的文本内容
- .string:返回的是该标签直系的文本内容
from bs4 import BeautifulSoup
fp = open('./xxx.html','r')
soup = BeautifulSoup(fp,'lxml')
soup.p
soup.find('div',class_= 'xxx')
soup.find('a',id='xxx')
soup.find('a',id='xxx')
soup.select('.class标签>ul标签>li标签')
a_tag = soup.find('x',id='xxx')
a_tag.string
a_tag.text