官网:https://www.crummy.com/software/BeautifulSoup/bs4/doc/

  参考:https://www.cnblogs.com/yupeng/p/3362031.html

  

  什么是BeautifulSoup?

    BeautifulSoup是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。

  下面通过一个测试例子简单说明下BeautifulSoup的用法

  

    def beautifulSoup_test(self):html_doc = """<html><head><title>The Dormouse's story</title></head><body><p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;<div  class="text" id="div1">测试</div>and they lived at the bottom of a well.</p><p class="story">...</p>"""# soup 就是BeautifulSoup处理格式化后的字符串soup = BeautifulSoup(html_doc,'lxml')# 得到的是title标签print(soup.title)# 输出:<title>The Dormouse's story</title># 得到的是文档中的第一个p标签,要想得到所有标签,得用find_all函数。# find_all 函数返回的是一个序列,可以对它进行循环,依次得到想到的东西.print(soup.p)print(soup.find_all('p'))print(soup.find(id='link3'))# 是返回文本,这个对每一个BeautifulSoup处理后的对象得到的标签都是生效的print(soup.get_text())aitems = soup.find_all('a')# 获取标签a的链接和idfor item in aitems:print(item["href"],item["id"])# 1、通过css查找print(soup.find_all("a", class_="sister"))# 输出:[<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>]print(soup.select("p.title"))# 输出:[<p class="title"><b>The Dormouse's story</b></p>]# 2、通过属性进行查找print(soup.find_all("a", attrs={"class": "sister"}))#输出:[<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>]# 3、通过文本进行查找print(soup.find_all(text="Elsie"))# 输出:['Elsie']print(soup.find_all(text=["Tillie", "Elsie", "Lacie"]))# 输出:['Elsie', 'Lacie', 'Tillie']# 4、限制结果个数print(soup.find_all("a", limit=2))#输出:[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,# <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]print(soup.find_all(id="link2"))# [<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]print(soup.find_all(id=True))#输出:[<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>,# <div class="text" id="div1">测试</div>]

转载于:https://www.cnblogs.com/shaosks/p/10300054.html

python BeautifulSoup的简单使用相关推荐

  1. python beautifulsoup抓取网页内容_利用Python和Beautiful Soup抓取网页内容

    利用Python和Beautiful Soup抓取网页内容 Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏 Python 3中提供了url打 ...

  2. python代理池_用Python搭建一个简单的代理池

    其实每次爬东西的时候,特怕IP被封,所以每次都要把时间延迟设置得长一点...这次用Python搭建一个简单的代理池.获取代理IP,然后验证其有效性.不过结果好像不是很理想,为什么西刺代理的高匿代理都能 ...

  3. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  4. Python beautifulsoup爬取小说

    Python beautifulsoup爬取小说 提前准备好需要的库文件,命令行输入以下命令 pip install requests pip install bs4 pip install lxml ...

  5. python beautifulsoup库

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性. 通过Beautiful ...

  6. python网页爬虫+简单的数据分析

    python网页爬虫+简单的数据分析 文章目录 python网页爬虫+简单的数据分析 一.数据爬取 二.数据分析 1.我们今天爬取的目标网站是:http://pm25.in/ 2.需要爬取的目标数据是 ...

  7. python制作统计图_刻意练习11:Python描述统计、简单统计图形

    学习计划 MyPlan11 主题:Python描述统计.简单统计图形 时间:8.5-8.11周内完成 参考资料:新书<谁说菜鸟不会数据分析python篇> 各位星友们,在这个星球里每个人都 ...

  8. 用Python建立最简单的web服务器

    用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认 ...

  9. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

最新文章

  1. 用D3.js 十分钟实现字符跳动效果
  2. 关于数据库,你可能最想知道的几件事
  3. 结构体前置申明未定义问题
  4. 有关 Oracle redo log
  5. Maven Git发布
  6. 前端学习(3273):js中this的使用二
  7. java静态方法库api下载_Java——静态方法库和抽象数据类型
  8. c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结
  9. python创意编程是什么_Python趣味创意编程
  10. ios支付 选择货币_iOS开发中金钱货币的计算问题
  11. json字符串与js对象转换
  12. 第六章 类型和成员基础
  13. 电脑丢失dll文件能一键修复吗,哪种修复方法靠谱?
  14. [华为19实习面试]语言能力优秀的我,是怎么拿下勇敢星实习offer的?华为硬件类面试经历经验分享(大三已拿offer)
  15. 一看就会的侧方位停车技巧 见了就收了吧
  16. 物联网组网技术比较 NB-IoT、LoRa、ZigBee、WiFi、蓝牙等
  17. 爬虫例子——多页、函数模板
  18. 全面认识海思SDK及嵌入式层开发(4)
  19. 存储过程代码关于反跑批批量与日更新
  20. PMBOK史上最大的改版,你知道到底有什么精华嘛?

热门文章

  1. 谷歌AI新技术:通过追踪虹膜,普通摄像头也能测距
  2. 解读在校园招聘中人工智能常考的笔试题
  3. 保守的机器学习如何拯救日新月异的我们
  4. GitHub年度报告:中国开源贡献仅次美国、Python成第二热门语言
  5. AI综述专栏 | 基于深度学习的目标检测算法综述
  6. 国人如此浮躁为哪般? --- 我看2018年度AI圈八大造假事件华人独占6件
  7. 利用人工智能进行网页设计的10种方法
  8. 数据流分析:可用表达式的计算+活跃变量计算+到达定值。
  9. 大科学时代,指数级增长的科学仍然拥有前所未有的朝气与活力
  10. 重磅:国拨概算5.34亿!“新一代人工智能”重大项目项目申报指南发布