介绍

简介

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_siblingssoup_obj.previous_siblings

常用属性和方法

  • 获取标签的名称:soup_obj.name
  • 获取标签的属性:soup_obj.attrs 返回所有属性的字典;soup_obj.get('href')获取具体属性的值
  • 获取标签的内容:soup_obj.stringsoup.tag.text
  • 清空内部元素,保留当前标签:soup_obj.clear()
  • 清空,包括自己:soup_obj.decompose
  • 同上,但是有返回值:soup.extract()
  • 正则查找:rep = re.comiple('^p')soup.find_all (name=rep)

BeautifulSoup 用法总结相关推荐

  1. BeautifulSoup用法详解

    注:本文代码以网站http://www.pythonscraping.com/pages/page3.html为例 1.获取网页HTML内容,传到BeautifulSoup对象. import req ...

  2. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程

    Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...

  3. Python爬虫4.4 — selenium高级用法教程

    Python爬虫4.4 - selenium高级用法教程 综述 Headless Chrome 设置请求头 设置代理IP 常用启动项参数options设置 Cookie操作 selenium设置coo ...

  4. python编程基础与应用-Python程序设计基础与应用

    图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...

  5. 手把手带你入门Python爬虫(二、爬虫预备知识)

    爬虫预备知识 一.计算机网络协议基础 二.Html.Css.Javascript Ajax 异步加载 GET请求 与 POST请求 3种content-type 三.爬虫基本方法 1. 采集方案分类 ...

  6. python程序设计基础与应用 机械工业出版社_Python程序设计基础与应用

    图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...

  7. python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...

    # -*- coding: utf-8-*- import re ##过滤HTML中的标签 #将HTML中标签等信息去掉 #@param htmlstr HTML字符串. def filter_tag ...

  8. 如何使用Python itchat库玩转微信, 统计好友信息, 设置自动回复和发送本地文件...

    最近较忙无时间写Python和Django的文章,先转载些有趣易读的文章推荐给大家.itchat是个非常有趣的库,你可以利用它获取统计微信好友信息,给好友程序性地发送信息和文件(比如定时或设置自动回复 ...

  9. 「需求广场」需求词更新明细(九)

    进入需求广场,选取你擅长的领域开始上传资源.获取流量吧! 2022.6.17上线需求词: No. 需求词 No. 需求词 No. 需求词 1 facebook注册 87 python map函数 17 ...

最新文章

  1. Openstack 安装部署指南翻译系列 之 概况
  2. POJ 1753 Flip Game DFS枚举
  3. Unit9 Mangement Strategies—— I
  4. Merge Two Sorted Lists leetcode java
  5. 中国历史上最牛气的十大豪言壮语
  6. 专栏 | IBM Watson启示录:AI不应该仅仅是炫技
  7. 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
  8. 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
  9. 公众号文章批量导出工具
  10. SWAT模型学习(三)
  11. pytest之.pytest_cache文件夹作用【Pytest中的cache缓存功能】
  12. 如何让你的app在后台被干掉后优雅的启动。
  13. Python——飞机大战源码(含飞机爆炸效果动图)
  14. Hark的数据结构与算法练习之归并排序
  15. 【PPT】跨境电商的N个知识点普及
  16. 容器启动失败 ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346
  17. vue简易微前端项目搭建(一):项目背景及简介
  18. 离开一线企业,你算老几?(上)
  19. 头牌知产介绍商标为什么要打r符号?怎么打?
  20. 使用 KubeSphere 轻松实现微服务灰度发布与熔断

热门文章

  1. (计算机组成原理)第二章数据的表示和运算-第四节2:本节习题
  2. (计算机组成原理)第二章数据的表示和运算-第一节3:字符与字符串在计算机中的表示详解
  3. qt中 accept()和ignore()函数
  4. 1003. 检查替换后的词是否有效
  5. 1160. 拼写单词
  6. JS 常用函数一(弹对话框、操作HTML元素、写HTML文档、写到控制台、查找元素、元素插入内容、改变HTML属性、计时)
  7. Go Micro搭建简单微服务
  8. jdk监控与故障处理工具
  9. [游戏开发-学习笔记]菜鸟慢慢飞(14)- ScrollView刷新
  10. bzoj 4184 shallot 时间线建线段树+vector+线性基