python爬虫数据提取之bs4的使用方法
Beautiful Soup的使用
1.下载
pip install bs4
pip install lxml # 解析器 官方推荐
2.引用方法
from bs4 import BeautifulSoup # 引入我们的主题
3.解析原理
- 实例化一个BeautifulSoup的对象,并且将即将被解析的页面源码数据加载到该对象中
- 调用BeautifulSoup对象中的相关属性和方法进行标签定位和数据提取
4.使用方法
将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄
soup = BeautifulSoup(open("index.html"),'lxml') # 文件句柄
soup = BeautifulSoup("<html>data</html>",'lxml') # 网页源数据
tag
纯标签定位
soup.tagName:定位到第一个TagName标签,返回的是单数
属性定位
属性定位:soup.find('tagName',attrName='value'),返回也是单数(第一个元素)
find_all:和find用法一致,但是返回值是列表
注:attrname中查询class字段为class_,id为id
selector
返回值为列表
选择器定位:select('选择器')
返回值类型为bs4.element.ResultSet
标签,类,id,层级(>:一个层级,空格:多个层级)
提取数据
- 取文本
- tag.string:标签中直系的文本内容
- tag.text:标签中所有的文本内容
- 取属性
- tag['attrName']
- 取文本
5.注意事项
只有bs4.element.Tag对象才拥有上述的方法和属性,select返回的对象集合是不具有该属性和方法,通过索引拿到对应的Tag对象才能进行数据提取操作
python爬虫数据提取之bs4的使用方法的更多相关文章
- Python——爬虫——数据提取
一.XML数据提取 (1)定义:XML指可扩展标记语言.标记语言,标签需要我们自行定义 (2)设计宗旨:是传输数据,而非显示数据,具有自我描述性 (3)节点关系: 父:每个元素及属性都有一个父. ...
- Python 爬虫 数据提取
一下子运行 七八十个 select 将会是什么样的体验呢? 业务部门提供了一个需要,要求从爬虫数据中提取出88家的数据, 并且也提供了一个excel表格,如下图: 这个时候我们可以通过拍卖行,拍卖时 ...
- python爬虫+数据可视化项目(关注、持续更新)
python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...
- python 爬虫数据存入csv格式方法
python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...
- python爬虫数据解析之BeautifulSoup
BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...
- python爬虫--数据解析
数据解析 什么是数据解析及作用 概念:就是将一组数据中的局部数据进行提取 作用:来实现聚焦爬虫 数据解析的通用原理 标签定位 取文本或者属性 正则解析 正则回顾 单字符: . : 除换行以外所有字符 ...
- python爬虫数据解析之正则表达式
爬虫的一般分为四步,第二个步骤就是对爬取的数据进行解析. python爬虫一般使用三种解析方式,一正则表达式,二xpath,三BeautifulSoup. 这篇博客主要记录下正则表达式的使用. 正则表 ...
- 【学习】Python进行数据提取的方法总结【转载】
链接:http://www.jb51.net/article/90946.htm 数据提取是分析师日常工作中经常遇到的需求.如某个用户的贷款金额,某个月或季度的利息总收入,某个特定时间段的贷款金额和笔 ...
- 爬虫数据提取之JSON与JsonPATH
数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...
随机推荐
- PHP checkdate() 函数
------------恢复内容开始------------ 实例 检查一些日期是否是有效的格利高里日期: <?phpvar_dump(checkdate(12,31,-400));echo & ...
- IDEA、maven创建webapp项目
maven官方入门指南:http://maven.apache.org/guides/getting-started/index.html 推荐跟着官方文档学习噢~ IDEA.maven创建w ...
- Typora+PicGo-Core(command line)+SMMS、github、gitee实现Typora图片上传到图床
Typora+PicGo-Core(command line)+SMMS.github.gitee实现Typora图片上传到图床 1 安装插件2 配置config.json 2.1 设置SMMS ...
- 服务治理框架dubbo中zookeeper的使用
Zookeeper提供了一套很好的分布式集群管理的机制,就是它这猴子那个几月层次型的目录树的数据结构,并对书中的节点进行有效的管理,从而可以设计出多种多样的分布式的数据管理模型:下面简要介绍下zook ...
- linux集群服务网络状态(netstat),服务端页面(图形字符页面)基本配置
Linux网络基础配置 yum -y install vim 安装vim 关闭的防火墙服务 iptables -F iptables -X iptables -Z systemctl s ...
- time模块 random模块
time模块 time.sys等模块是C语言实现的,内置到了python解释器的.而不是py文件. 导入模块的时候,优先到python解释器,然后才会找py文件. #时间戳 #计算 # print(t ...
- Qt数据库 QSqlTableModel实例操作(转)
本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...
- PyQt QML
- Java单元测试 Junit TestNG之介绍
Junit是Java中默认的单元测试框架,通过注解的方式去识别测试方法 JUnit4 JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且 ...
- Web接口测试理论知识分享
首先谈下接口的定义分为2类,程序接口和协议接口 1.程序模块接口,具体到程序中就是提供了输入输出的类 方法,我们可以通过传入不同的参数,来验证程序接口的功能 2.协议接口 比如HTTP/SOAP协议 ...