使用BeautifulSoup高效解析网页,再也不用担心睡不着觉了
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高效解析网页,再也不用担心睡不着觉了的更多相关文章
- python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了
我们上次做了 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 有些朋友觉得 利用正则表达式去提取信息 太特么麻烦了 有没有什么别的方式 更方便过滤我们想要的内容啊 emmmm 你还别说 还 ...
- 妈妈再也不用担心别人问我是否真正用过redis了
1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...
- 有了 tldr,妈妈再也不用担心我记不住命令了
引言 有一次我在培训时说「程序员要善于使用 Terminal 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI?」 是的,在一些人眼里,这个黑黑 ...
- 教会舍友玩 Git (再也不用担心他的学习)
舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜之郎牌Git文章,学完以后,再也不用担心舍友的学习了(狗头)哪里不会写哪里 ~~~ 一 先来聊一聊 太多东西属于,总在用,但是一直都没整理的 ...
- 保姆级神器 Maven,再也不用担心项目构建搞崩了
今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...
- 锋利的js之妈妈再也不用担心我找错钱了
用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了
[阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...
- 妈妈再也不用担心我使用git了
妈妈再也不用担心我使用git了 Dec 29, 2014 git git由于其灵活,速度快,离线工作等特点而倍受青睐,下面一步步来总结下git的基本命令和常用操作. 安装msysgit 下载地址:ms ...
- 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了
前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体 ...
随机推荐
- PE结构分析(二)
在表中,我们知道了0x01 4c对应的平台结构是i386: 我们接着分析下一个字段,给出PE结构图 向后推移2个字节,现在来到(图片高亮部分): 高亮部分对应IMAGE_NT_HEADERS结构的Nu ...
- Asp.Net Core&CAP实现分布式事务
需要注意的是标题中的CAP不是指的CAP理论,而是园区大神杨晓东实现的框架,CAP框架基于本地消息表用最终一致性实现分布式事务. 本地消息表 首先我们考虑一个场景,在将用户信息更改后,需要发送一条消息 ...
- 深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
1.1 什么是热修复 对于广大的移动开发者而言,发版更新是最为寻常不过的事了.然而,如果你 发现刚发出去的包有紧急的BUG需要修复,那你就必须需要经过下面这样的流程: 这就是传统的更新流程,步骤十分繁 ...
- 关于Oracle 数据库使用dba_tables或者all_tables或者user_tables统计数据时,与直接查询表统计时数据不一致的记录
1. 今天写代码发现这个问题,这里记录一下, 不一致的原因是因为 dba_tables .all_tables.user_tables 不是实时的反应表的数据的,所以需要在查询统计之前对表进行手动分 ...
- 路由器逆向分析------firmware-mod-kit工具安装和使用说明
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68061957 一.firmware-mod-kit工具的安装 firmware-m ...
- 如何利用C++的time头文件获取系统时间
C++提供了time.h头文件进行时间编辑操作,可以把时间格式化进tm结构体,方便使用.MFC框架中的ctime类就是基于time.h封装的. 代码样例: #include <iostream& ...
- Linux-鸟菜-5-目录配置-FHS
Linux-鸟菜-5-目录配置-FHS 这节内容比较休闲,主要就是介绍Linux的目录配置,也就是那些目录通常是干啥的,这个比较重要,需要我们去了解.但是我觉得通常看一遍记不住啥,也就记个大概,主要还 ...
- [CTF]凯撒密码
[CTF]凯撒密码 --------------------- 作者:___Blue_H 来源:CSDN 原文:https://blog.csdn.net/qq_37653144/article ...
- 每天一道面试题LeetCode 80--删除排序数组中的重复项 II(python实现)
LeetCode 80--删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输 ...
- Identity Server4 数据迁移、持久化
add-migration InitialPersistedGrantDb -c PersistedGrantDbContext -o Migrations/IdentityServer/Persis ...