当前位置: 首页 > java >正文

Python爬虫09_Requests用bs4进行数据解析

一、步骤解读

bs4进行数据解析
数据解析的原理:
1.标签定位
2.提取标签、标签属性中存储的数据值
bs4数据解析的原理:
1.实例化一个Beautifulsoup对象,并且将页面源码数据加载到该对象中
2.通过调用Beautifulsoup对象中相关的属性或者方法进行标签定位和数据提取
环境安装:
pip install bs4
pip install lxml
如何实例化BeautifulSoup对象:
from bs4 import Beautifulsoup
对象的实例化:
1.将本地的html文档中的数据加载到该对象中
fp = open(‘./test.html’,‘r’,encoding=‘utf-8’)
soup = BeautifulSoup(fp,‘lxml’)
2.将互联网上获取的页面源码加载到该对象中
page_text = response.text
soup = BeautifulSoup(page_text,‘lxml’)
提供用于数据解析的方法和属性:
soup.tagName:返回的是文档中第一次出现的tagName对应的标签
soup.find():
find(‘tagName’):等同于soup.div
属性定位
soup.find(‘div’,class_/id/attr=‘song’)
soup.find_all(‘tabName’):返回符合要求的所有标签(列表)
select:
select(‘某种选择器(id,class,标签…选择器)’),返回的是一个列表。
层级选择器:
soup.select(‘.tang > ul > li > a’)

二、源代码示例

from bs4 import BeautifulSoup
fp = open('E:\\Program\\Code\\Html\\惠泉酒坊\\index.html','r',encoding='utf-8')
soup = BeautifulSoup(fp,'lxml')
print(soup.a)
print('---------------------------------------------------------------------------------------------')
print(soup.div)
print('---------------------------------------------------------------------------------------------')
print(soup.find('div'))
print('---------------------------------------------------------------------------------------------')
print(soup.find('div',class_='c1'))
print('---------------------------------------------------------------------------------------------')
print(soup.select('.tu2'))
print('---------------------------------------------------------------------------------------------')
print(soup.select('.ai2 > ul')[0])
http://www.xdnf.cn/news/17154.html

相关文章:

  • Java、Android及计算机基础面试题总结
  • ubuntu-server安装
  • 外协采购订单的价格差异科目没有产生差异科目问题
  • MongoDB学习专题(二)核心操作
  • 使用buildx构建镜像
  • 蓝桥杯常用java API
  • 东北大学“进化论”赋能具身导航!SE-VLN:基于多模态大模型的自进化视觉语言导航框架
  • wps创建编辑excel customHeight 属性不是标准 Excel Open XML导致比对异常
  • 【qt5_study】2.使用Qt Designer构造UI界面(信号与槽)
  • PHP实战代码解析与应用分享:用户管理、日志,配置管理与文件操作全解析
  • 《C++》继承完全指南:从入门到精通
  • 基于 Spring Boot 的小区人脸识别与出入记录管理系统实现
  • mac安装pycharm
  • 【Dify学习笔记】:保留原所有数据,升级Dify版本
  • Android 中几种常用布局的优缺点
  • Leetcode 13 java
  • Django中的转发与重定向详解
  • 物联网后端系统架构:从基础到AI驱动的未来 - 第十章:AI促进IOT领域发生革命式发展
  • C# --- 本地缓存失效形成缓存击穿触发限流
  • eclipse类IDE导入现有工程教程
  • 17day-人工智能-机器学习-分类算法-KNN
  • Spring IOC:Java开发中的依赖魔法
  • 【Qt开发】常用控件(一)
  • HTTP性能优化实战:解决高并发场景下的连接瓶颈与延迟问题
  • 【Spring Boot 快速入门】七、阿里云 OSS 文件上传
  • 家庭财务管理系统|基于java和小程序的家庭财务管理系统设计与实现(源码+数据库+文档)
  • 【含文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现
  • 3D 材质与纹理:让虚拟模型 “以假乱真” 的核心密码
  • 基于ARM+FPGA光栅数据采集卡设计
  • Datart:开源数据可视化的新星,赋能企业数据分析