欢迎关注”生信修炼手册”!

BeautifulSoup模块用于解析html和xml文档中的内容,相比正则表达式,其更好的利用了html这种结构性文档的树状结构,解析起来更加方便。

解析的第一步,是构建一个BeautifulSoup对象,基本用法如下

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html_doc, 'html.parser')

第二个参数表示解析器,BeautifulSoup支持以下多种解释器,图示如下

在实际操作中,推荐使用lxm解析器,速度快而且稳定。解析完成后,就得到了一个文档树,我们可以通过这个文档树来快速的查找位点, 其核心就是操作文档树的子节点, 也称之为tag。

1. 访问标签

通过点号操作符,可以直接访问文档中的特定标签,示例如下

>>> soup = BeautifulSoup(html_doc, 'lxml')
>>> soup.head
<head><title>The Dormouse's story</title></head>
>>> soup.head.title
<title>The Dormouse's story</title>
>>> soup.a
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

这样的方式每次只会返回文档中的第一个标签,对于多个标签,则通过find_all方法返回多个标签构成的列表,示例如下

>>> soup.find_all('a')
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
>>> soup.find_all('a')[0]
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

还可以在find方法中添加过滤条件,更加精确的定位元素,示例如下

# 通过text进行筛选
>>> soup.find_all('a', text='Elsie')
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
# 通过属性和值来进行筛选
>>> soup.find_all('a', attrs={'id':'link1'})
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
# 上述写法的简便写法,只适合部分属性
>>> soup.find_all('a', id='link1')
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
```
# 使用CSS选择器
# 注意class后面加下划线
>>> soup.find_all('p', class_='title')
[<p class="title"><b>The Dormouse's story</b></p>]

2. 访问标签内容和属性

通过name和string可以访问标签的名字和内容,通过get和中括号操作符则可以访问标签中的属性和值

>>> soup.a
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
>>> soup.a['class']
['sister']
>>> soup.a.get('class')
['sister']
>>> soup.a.name
'a'
>>> soup.a.string
'Elsie'

结合定位元素和访问属性的方法,可以方便快捷的提取对应元素,提高解析html的便利性。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

更多精彩

  • KEGG数据库,除了pathway你还知道哪些

  • 全网最完整的circos中文教程

  • DNA甲基化数据分析专题

  • 突变检测数据分析专题

  • mRNA数据分析专题

  • lncRNA数据分析专题

  • circRNA数据分析专题

  • miRNA数据分析专题

  • 单细胞转录组数据分析专题

  • chip_seq数据分析专题

  • Hi-C数据分析专题

  • HLA数据分析专题

  • TCGA肿瘤数据分析专题

  • 基因组组装数据分析专题

  • CNV数据分析专题

  • GWAS数据分析专题

  • 2018年推文合集

  • 2019年推文合集

写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号

使用BeautifulSoup解析网页内容相关推荐

  1. python安全攻防---爬虫基础---BeautifulSoup解析

    0x01 基础 使用bs4首先要安装,安装后导入 import bs4 bs对象有两个方法,一个是find,另一个是find_all find(标签名,属性值):只返回一个,返回也是bs对象,可以继续 ...

  2. python爬虫beautifulsoup_python爬虫beautifulsoup解析html方法

    用BeautifulSoup 解析html和xml字符串 实例: #!/usr/bin/python # -*- coding: UTF-8 -*- from bs4 import Beautiful ...

  3. 易语言解析网页内容替换换行符问题

    易语言解析网页内容替换换行符,直接用字符数来替换 分割文本 (局_结果, 字符 (10), )

  4. Python3爬虫——用BeautifulSoup解析古诗文网

    我们之前已经用Xpath分析过了古诗文网,但还是感觉有点麻烦,所以今天来讲BeautifulSoup库,它可以很方便的帮我们抓取网页的数据,同样也支持lxml解析器,下面我们来详细介绍: 安装Beau ...

  5. 爬虫入门一:BeautifulSoup解析豆瓣即将上映的电影信息

    爬虫入门一 一直很想学习一下爬虫,今天忙里偷闲看了一篇教程博客之后开始入门学习,很感谢教程作者的讲解与分享,文末附教程博客链接. BeautifulSoup解析豆瓣即将上映的电影信息 python代码 ...

  6. 用 BeautifulSoup 解析器分析 RSS

    用 BeautifulSoup 解析器分析简易信息聚合RSS 运行代码 它是如何工作的 分析地址 遍历所有资讯 安装解析器 检查打印 运行代码 虽然今天传来不好的消息,京城新增数十例,但是调试程序的工 ...

  7. beautifulsoup解析

    简介 beautifulsoup和lxml都是解析器 优点:具有人性化接口 缺点:没有lxml效率高 bs4基本语法(bs4解析本地文件) html文件如下: <!DOCTYPE html> ...

  8. BeautifulSoup解析爱丽丝梦游仙境网页小练习

    BeautifulSoup解析爱丽丝梦游仙境网页小练习 html_doc = """ <html><head><title>The D ...

  9. 转载自android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式)

    转载自http://blog.csdn.net/sac761/article/details/48379173 android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式) 标签: ...

  10. Day08、BeautifulSoup解析库,MongoDB存储库,requests-html请求库

    一.解析库之bs4 ''' pip3 install beautifulsoup4 # 安装bs4 pip3 install lxml # 下载lxml解析器 ''' html_doc = " ...

最新文章

  1. 小程序登录、用户信息相关接口调整说明
  2. python代码编辑器-世界上最好的Python编辑器是什么?
  3. java ppt 转图片格式_Java PPT(X)转图片、PDF和SVG
  4. HOJ 2278 IP Filtering (二分)
  5. python自学笔记之开源小工具:SanicDB介绍
  6. 发球机器轰灭了中国姑娘的奇迹
  7. 一些linux知识和http知识
  8. [HNOI2019]校园旅行
  9. Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean 解决方案
  10. 计算机管理 没有适当的权限,提示没有合适的权限访问怎么办
  11. C#.Net工作笔记012---c# 文件操作_文件路径操作_随时更新
  12. 小程序-读取视频数据 每个N帧采样保存
  13. javamailsender注入失败_Springboot 之 JavaMailSender发送电子邮件
  14. 利用gganimate可视化R-Ladies发展情况
  15. [Python] 当猎头遇上 Guido van Rossum
  16. android网易云桌面歌词,网易云音乐APP怎么开启桌面歌词功能
  17. 态度决定一切细节决定成败_字体设计可以决定设计的成败:选择字体的过程
  18. 软件代码数字签名基本原理
  19. 环比和同比的定义和应用
  20. android点歌系统代码

热门文章

  1. 高mysql千万级大数据SQL查询优化几条经验
  2. 计算机算平方根原理,算术平方根与计算器
  3. 平板示波器如何进行探头的补偿和衰减系数设定-Pintech品致
  4. win7自带截屏便签 打开命令
  5. 关于出版《ARKit原生开发入门精粹》(2021-03-24更新)
  6. 盐城市公交路线及时刻表
  7. Kubernetes pull requests
  8. vue导出服务器上的excel文件,详解如何在Vue项目中导出Excel
  9. Vue 安装@vue/cli报错npmERR gyp ERR
  10. PyTorch-1.10(十三)--torch.optim基本用法