数据解析
- response 方法
- content 返回二进制响应数据
- text 返回字符串
- json() 返回json对象
正则
- re.S 单行匹配
- re.M 多行匹配
img_src_list = re.findall(ex,img_data,re.S)
bs4数据解析
数据解析的原理
bs4数据解析的原理:
对象的实例化:
- 本地html文档数据加载
- fp = open('xx.html','r',encoding = 'utf-8')
- soup = BeautifulSoup(fp,'lxml')
- 页面源码加载
- page_text = response.text
- soup = BeautifulSoup(page_text,'lxml')
- 使用lxml解析器
bs4方法属性
- soup.tagName 返回第一次出现的tagName标签
-print(soup.a)\soup.div\soup.p ... - soup.find('div')
- soup.findall('tagName')
- 返回符合要求的所有标签(列表)
- soup.select()
- 获取标签间文本数据
- 获取标签中的属性值
- soup.select('.xxx > div > l > a')[0]['href']
xpath解析
-
实例化etree对象
- tree = etree.parse('x.html')//filepath
- tree = etree.HTML('xxx_text')
-
标签定位 :
-
tree.xpath('/html/head/title')
-
tree.xpath('/html//title')
-
tree.xpath('//title')
-
返回Element类型对象列表
-
/:表示的是从根节点进行定位,表示一个层级
-
//: 表示多个层级,可以表示从任意位置开始定位'//div'
-
-
属性定位
- tree.xpath('//div[@class="ss"]')
-
索引定位
- tree.xpath('//div[@class="ss"]/p[3]') 索引从1开始
-
取文本
-
取属性
- /@attrName ==>img/src
-
tree.xpath('/html/head/title | //title') // '|' 将多个结果合并
-
tree.xpath 返回etree类型列表 可对子tree进行xpath解析 './'继承父结果
- encode('iso-8859-1').decode('gbk')
- encode('iso-8859-1').decode('utf-8')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。