当前位置: 首页 > news >正文

python-62: BS4的基本知识

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

我们前面提出了几个问题,现在就来一个一个的解决这些问题

1.BS4是什么?

官方文档上是这样写的:

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

所谓的提取数据就是在网页源码中获取你想要的信息,比如,网址,图片的链接,文字等等,这个功能跟我们之前使用的正则表达式一样,而且经过前面的学习我们也知道,使用正则表达式在网页源码中获取我们想要的数据并不是一件很困难的事情,只需要记住".*?"和"(.*?)",就行了,那为什么我们还要学习 BS4呢?

2. 为什么要学习BS4?

我觉得这是在我们学习之前最主要的问题,其他的BS4是什么,怎么安装,怎么使用这些都是次要的,这些内容上网随时可以找得到,我没有必要纠结这些,而且如果不知道为什么要学BS4,这些问题我可能连查都不会去查,我就直接使用RE,这跟我的性格有关,我必须要先知道为什么去做一件事情,找到一个能说服我的理由,然后才会认真的去做这件事情

但是事实上,这BS4还真是必须要学的一样东西,这个问题我会在下一个小节以一个例子来详细的说明,现在先来看看其他的问题

3. BS4怎么使用

前面也说了BS4是python的一个库,也就是,模块,我们前面的学习中也使用到了一些模块,像re,urllib,urllib2,cookielib,等等,所以既然BS4也是一个模块,那它的用法应该也跟前面一样,所以我们就来import看看吧

094058_IQPZ_2429887.png

这里出现了一个错误,这是为什么呢?

原因很简单,前面我们使用到的库是python自带的库函数,所以我们不需要安装直接import就可以使用,但是BS4不一样,BS4不是python自带的库,它是一个第三方的库,在我们的系统中并没有这个库函数,所以我们直接import会提示没有这个模块----"no module name bs4",解决的方法也很简单,直接安装这个模块就行了

至于怎么安装,根据操作系统的不同安装的方法也有不同,这里简单的讲一下

我这里使用的是ubuntu系统,我的安装方法很简单

sudo apt-get install python-bs4

至于其他的操作系统包括其他的linux,或者windows,可以到http://www.crummy.com/software/BeautifulSoup/download/4.x/ 下载源码然后通过setup.py来安装

Python setup.py install

这些都是很简单的问题,实在不懂的话网上一大把,可以上网去找找看

4. 怎么学习BS4

这个问题也很重要,先要知道为什么要学,然后需要知道怎么学,这个怎么学的过程首先要认知自我,你觉得你能凭空学出来一个BS4吗?如果能凭空的话,那应该是你自己造出来的只属于你的BS4,所以我们需要一个教材,或者说一本参考书之类的,那我们以什么作为学习的标准呢?BS4的官方文档,在学习之前,我首先是看了官方文档,但是发现写得不是那么有趣,所以我就上网去找找看有没有什么好的资料,结果发现网上绝大部分的教程都是官方文档上的,甚至连例子都不修改一下,最后没办法只能乖乖的看官方文档来学习,哦,对了,官方文档的地址是这个

http://beautifulsoup.readthedocs.org/zh_CN/latest/#

好了,这一小节我们总算把BS4的一些最最基本的问题讲完了,但是别忘了最重要的问题:

为什么要学习BS4

转载于:https://my.oschina.net/u/2429887/blog/548682

相关文章:

  • 《利用python进行数据分析》读书笔记--第十一章 金融和经济数据应用(二)
  • (九十四)函数和二维数组
  • Scribe配置文件解析
  • 读取文件操作
  • InfluxDb系列:几个关键概念(主要是和关系数据库做对比)
  • hibernate 配置connection.autocommit
  • 使用hexo搭建个人博客
  • Android ListView监听上下滑动(判断是否显示返回顶部按钮)
  • django返回json的几种方法以及android调用
  • Lind.DDD.ExpressionExtensions动态构建表达式树,实现对数据集的权限控制
  • 在Visual Studio中用C++语言创建DLL动态链接库图文教程
  • 2015.12.30 日学习总结
  • 谈模块独立拆分上线一些经验
  • SpringMVC multipart文件上传
  • apache开源项目--ibatis
  • Idea+maven+scala构建包并在spark on yarn 运行
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Markdown 语法简单说明
  • MySQL-事务管理(基础)
  • Vue.js源码(2):初探List Rendering
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 关于extract.autodesk.io的一些说明
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (4)logging(日志模块)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (八)Flask之app.route装饰器函数的参数
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三)elasticsearch 源码之启动流程分析
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (译)2019年前端性能优化清单 — 下篇
  • (转)EOS中账户、钱包和密钥的关系
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 6.0 处理跨域的方式
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net对接阿里云CSB服务
  • .NET简谈设计模式之(单件模式)
  • .NET使用存储过程实现对数据库的增删改查
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Validated和@Valid校验参数区别
  • [BZOJ1008][HNOI2008]越狱
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [ESP32] 编码旋钮驱动
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [IE编程] IE8 新增的C++开发接口
  • [Java]深入剖析常见排序
  • [LeeCode]—Wildcard Matching 通配符匹配问题