BeautifulSoup是一个可以从 HTML 或 XML 文件中提取数据的 Python 库

那需要怎么使用呢?

首先我们要安装一下这个库

1.pip install beautifulsoup4

2.pip install lxml



随便来一段html代码

html_doc = """
<html><head><title>学习python的正确姿势</title></head>
<body>
<p class="title"><b>我要学爬虫</b></p> <p class="story">有一天,小邓想找工作实习单位了,不知道怎么选
<a href="http://example.com/1" class="sister" id="link1">一个钱多职位低</a>,
<a href="http://example.com/2" class="sister" id="link2">一个钱少职位高</a> ,
他问我,我到底选钱多还是钱少的?</p> <p class="story">...</p> """

接着将 html 的源代码传给 BeautifulSoup

soup=BeautifulSoup(html_doc,"lxml")

然后就不需要写正则匹配了

以下为方法以及实例

#获得标签内的文本
# 学习python的正确姿势
#
# 我要学爬虫
# 有一天,小邓想找工作实习单位了,不知道怎么选
# 一个钱多职位低,
# 一个钱少职位高 ,
# 他问我,我到底选钱多还是钱少的?
# ...
print(soup.text) # 获取标题的内容
# 学习python的正确姿势
print(soup.title.string) # 获取 title 的父级标签
# head
print(soup.title.parent.name) # 获取超链接
# <a class="sister" href="http://example.com/1" id="link1">一个钱多职位低</a>
print(soup.a) # 获取所有超链接
# [<a class="sister" href="http://example.com/1" id="link1">一个钱多职位低</a>, <a class="sister" href="http://example.com/2" id="link2">一个钱少职位高</a>]
print(soup.find_all('a')) # 获取 id 为 link2 的超链接
# <a class="sister" href="http://example.com/2" id="link2">一个钱少职位高</a>
print(soup.find(id="link2"))

除了find方法之外,如果你对css比较熟悉也可以使用 select 方法

soup = BeautifulSoup(html_doc,'lxml')

print(soup.select("title"))
print(soup.select("body a"))
print(soup.select("p > #link1"))

以上就是 BeautifulSoup 常用的方法

进一步了解可去

BeautifulSoup文档

有了它,妈妈再也不用担心我的正则表达式了,下次还有人这样问你

年轻人,不会正则表达式你睡得着觉?有点出息没有?

你可以傲娇的告诉他

我可以睡个安稳觉咧!

爬虫的教程都是我找网上大佬学的

本篇章到此结束!

使用BeautifulSoup高效解析网页,再也不用担心睡不着觉了的更多相关文章

  1. python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了

    我们上次做了 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 有些朋友觉得 利用正则表达式去提取信息 太特么麻烦了 有没有什么别的方式 更方便过滤我们想要的内容啊 emmmm 你还别说 还 ...

  2. 妈妈再也不用担心别人问我是否真正用过redis了

    1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...

  3. 有了 tldr,妈妈再也不用担心我记不住命令了

    引言 有一次我在培训时说「程序员要善于使用 Terminal 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI?」 是的,在一些人眼里,这个黑黑 ...

  4. 教会舍友玩 Git (再也不用担心他的学习)

    舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜之郎牌Git文章,学完以后,再也不用担心舍友的学习了(狗头)哪里不会写哪里 ~~~ 一 先来聊一聊 太多东西属于,总在用,但是一直都没整理的 ...

  5. 保姆级神器 Maven,再也不用担心项目构建搞崩了

    今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...

  6. 锋利的js之妈妈再也不用担心我找错钱了

    用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  7. 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了

    [阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步  1.1 初识OAS  啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...

  8. 妈妈再也不用担心我使用git了

    妈妈再也不用担心我使用git了 Dec 29, 2014 git git由于其灵活,速度快,离线工作等特点而倍受青睐,下面一步步来总结下git的基本命令和常用操作. 安装msysgit 下载地址:ms ...

  9. 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了

    前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体 ...

随机推荐

  1. 通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流

    在一般的互联网应用中限流是一个比较常见的场景,也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现,也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接 ...

  2. CPF 入门教程 - 设计器和模板库的使用(五)

    CPF netcore跨平台UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) CPF 入门教程 - 样式和动画(三) CPF 入门教程 - 绘图(四) CPF ...

  3. HTTP/1.1、HTTP/2、HTTP/3 演变

    HTTP/1.1 相比 HTTP/1.0 提高了什么性能? 针对 HTTP/1.1 的性能瓶颈,HTTP/2 做了什么优化? HTTP/2 有哪些缺陷?HTTP/3 做了哪些优化? HTTP/1.1 ...

  4. 基于MATLAB的手写公式识别(7)

    今天晚上通过对原有T4模型的修改实现: 1.可以识别真彩图形.(这基本是一样大的,通过这个了解图像分割的原理) 2.在识别心脑管血药类的基础上实现数字的识别.(了解图像识别原理,熟练掌握图像分割技术) ...

  5. http文件下载与404

    # http文件下载与404 if (!file_exists($file_path)) { header('HTTP/1.1 404 Not Found'); header("status ...

  6. Shodan的使用

    目录 Shodan Shodan工作原理 Shodan的使用 使用搜索过滤 Kali中安装 Shodan Kali中Shodan的使用 Shodan Shodan 是一个搜索引擎,但它与 Google ...

  7. Python爬虫之requests库的使用

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 "HTTP for ...

  8. Cannot read property 'style' of null

    代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  9. 查看.class文件的工具

    1.JDK 提供的 javap -c javap -c  test.class 2.将test.class用idea打开.

  10. Python中Socket编程server与client简单的合法性认证

    导入python自带的hmac模块对随机生成的位数32字节和自定义token进行加密处理 import osmsg = os.urandom(32)  #随机生成msgOut[4]: b"F ...