BeautifulSoup 用法总结
介绍
简介
BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库
安装
pip install beautifulsoup4
解析器
Beautiful Soup支持Python标准库中的HTML解析器(’html.parser’),还支持一些第三方的解析器,比如lxml,推荐用后者,纯C实现的,速度更快:
pip install lxml
引入及容错处理
from bs4 import BeautifulSoupsoup=BeautifulSoup(html_doc,'lxml')
soup=soup.prettify() #容错处理===>自动补全代码
选择器
一个html是一个对象,对象可以嵌套对象;每个soup对象下的每一个标签,也都是对象。
标签选择器
- 标签选择器:即直接通过标签名字选择,选择速度快,如果存在多个相同的标签则只返回第一个:
soup.head # soup.tag
- 链式选择:
soup.parentTag.childTag
标准选择器
find与find_all方法: 可根据标签名,属性,内容查找文档,但是find只找第一个元素。
- 按照标签名查找:
soup.find(name='div')
- 按照属性查找:
soup.find(name='div', attrs={'id': 'aritcle-body'})
- 按照文本内容查找:
soup.find(text='xxxxxxx')
按照完整内容匹配(是==而不是in),得到的结果也是内容
CSS选择器
通过select方法来选择,支持CSS选择的器的所有方式,在此不详述。
soup.select('.myclass span')
通过class属性选择soup.select('#article-body')
通过id选择
关联查找
- 子节点、子孙节点:
- 子节点:
soup_obj.contents
返回列表;soup_obj.children
返回迭代器 - 子孙节点:
soup_obj.descendants
- 子节点:
- 父节点、祖先节点:
soup_obj.parent
父节soup_obj.parents
祖先节点 - 兄弟节点:
soup_obj.next_siblings
;soup_obj.previous_siblings
常用属性和方法
- 获取标签的名称:
soup_obj.name
- 获取标签的属性:
soup_obj.attrs
返回所有属性的字典;soup_obj.get('href')
获取具体属性的值 - 获取标签的内容:
soup_obj.string
;soup.tag.text
- 清空内部元素,保留当前标签:
soup_obj.clear()
- 清空,包括自己:
soup_obj.decompose
- 同上,但是有返回值:
soup.extract()
- 正则查找:
rep = re.comiple('^p')
,soup.find_all (name=rep)
BeautifulSoup 用法总结相关推荐
- BeautifulSoup用法详解
注:本文代码以网站http://www.pythonscraping.com/pages/page3.html为例 1.获取网页HTML内容,传到BeautifulSoup对象. import req ...
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...
- Python爬虫4.4 — selenium高级用法教程
Python爬虫4.4 - selenium高级用法教程 综述 Headless Chrome 设置请求头 设置代理IP 常用启动项参数options设置 Cookie操作 selenium设置coo ...
- python编程基础与应用-Python程序设计基础与应用
图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...
- 手把手带你入门Python爬虫(二、爬虫预备知识)
爬虫预备知识 一.计算机网络协议基础 二.Html.Css.Javascript Ajax 异步加载 GET请求 与 POST请求 3种content-type 三.爬虫基本方法 1. 采集方案分类 ...
- python程序设计基础与应用 机械工业出版社_Python程序设计基础与应用
图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...
- python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...
# -*- coding: utf-8-*- import re ##过滤HTML中的标签 #将HTML中标签等信息去掉 #@param htmlstr HTML字符串. def filter_tag ...
- 如何使用Python itchat库玩转微信, 统计好友信息, 设置自动回复和发送本地文件...
最近较忙无时间写Python和Django的文章,先转载些有趣易读的文章推荐给大家.itchat是个非常有趣的库,你可以利用它获取统计微信好友信息,给好友程序性地发送信息和文件(比如定时或设置自动回复 ...
- 「需求广场」需求词更新明细(九)
进入需求广场,选取你擅长的领域开始上传资源.获取流量吧! 2022.6.17上线需求词: No. 需求词 No. 需求词 No. 需求词 1 facebook注册 87 python map函数 17 ...
最新文章
- Openstack 安装部署指南翻译系列 之 概况
- POJ 1753 Flip Game DFS枚举
- Unit9 Mangement Strategies—— I
- Merge Two Sorted Lists leetcode java
- 中国历史上最牛气的十大豪言壮语
- 专栏 | IBM Watson启示录:AI不应该仅仅是炫技
- 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
- 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
- 公众号文章批量导出工具
- SWAT模型学习(三)
- pytest之.pytest_cache文件夹作用【Pytest中的cache缓存功能】
- 如何让你的app在后台被干掉后优雅的启动。
- Python——飞机大战源码(含飞机爆炸效果动图)
- Hark的数据结构与算法练习之归并排序
- 【PPT】跨境电商的N个知识点普及
- 容器启动失败 ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346
- vue简易微前端项目搭建(一):项目背景及简介
- 离开一线企业,你算老几?(上)
- 头牌知产介绍商标为什么要打r符号?怎么打?
- 使用 KubeSphere 轻松实现微服务灰度发布与熔断
热门文章
- (计算机组成原理)第二章数据的表示和运算-第四节2:本节习题
- (计算机组成原理)第二章数据的表示和运算-第一节3:字符与字符串在计算机中的表示详解
- qt中 accept()和ignore()函数
- 1003. 检查替换后的词是否有效
- 1160. 拼写单词
- JS 常用函数一(弹对话框、操作HTML元素、写HTML文档、写到控制台、查找元素、元素插入内容、改变HTML属性、计时)
- Go Micro搭建简单微服务
- jdk监控与故障处理工具
- [游戏开发-学习笔记]菜鸟慢慢飞(14)- ScrollView刷新
- bzoj 4184 shallot 时间线建线段树+vector+线性基