前言

本篇详细介绍beautifulsoup4的功能,从最基础的开始讲起,让小伙伴们都能入门

一、读取HTML页面

1.先写一个简单的html页面,把以下内容copy出来,保存为html格式文件

<meta charset="UTF-8"> <!-- for HTML5 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html><head><title>yoyo ketang</title></head>
<body>
<b><!--Hey, this in comment!--></b>
<p class="title"><b>yoyoketang</b></p>
<p class="yoyo">这里是我的微信公众号:yoyoketang
<a href="http://www.cnblogs.com/yoyoketa/tag/fiddler/" class="sister" id="link1">fiddler</a>,
<a href="http://www.cnblogs.com/yoyoketang/tag/python/" class="sister" id="link2">python</a>,
<a href="http://www.cnblogs.com/yoyoketang/tag/selenium/" class="sister" id="link3">selenium</a>;
快来关注吧!</p>

<p class="story">...</p>
2.为了学习方便,可以把此html文件和脚本放同一文件夹下

3.用python的open函数读取这个html,如下图能正确打印出来,说明读取成功了

二、解析器:html.parser

1.用BeautifulSoup的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄

2.如果我们调用BeautifulSoup这个类的时候,不带"html.parser"参数,这时候会有个waring的,下图红色框框区域给出了建议。

3.html.parser这个是python库里面自带的解析器,无需安装。

4.prettify()这个方法是把文件解析成html格式,用html的标准格式输出(有缩进的)

三、对象的种类

1.Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

Tag :   标签对象,如:<p class="title"><b>yoyoketang</b></p>,这就是一个标签

NavigableString :字符对象,如:这里是我的微信公众号:yoyoketa

BeautifulSoup   :就是整个html对象

Comment    :注释对象,如:!-- for HTML5 --,它其实就是一个特殊NavigableString

2.弄清楚了这四个对象,后面所有的操作但是基于这四个(其实最后面一个comment可以忽略,几乎用不到)

四、Tag对象

1.html里面识别一个tag,其实一般像这种:

<p class="title"><b>yoyoketang</b></p>

<b>yoyoketang</b>

<head><title>yoyo ketang</title></head>

以上这些都是tag,很明显都是以<xx 开头</xx> 结尾这种,就是一个完整的tag

2.通过标签的名称,来获取tag对象

3.如果有多个相同的标签名称,返回的是第一个

python爬虫beautifulsoup4系列2的更多相关文章

  1. python爬虫beautifulsoup4系列1

    前言 以博客园为例,爬取我的博客上首页的发布时间.标题.摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能. 一.安装 1.打开cmd用pip在线安装beauti ...

  2. python爬虫beautifulsoup4系列2【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇详细介绍beautifulsoup4的功能,从 ...

  3. python爬虫beautifulsoup4系列1【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 以博客园为例,爬取我的博客上首页的发布时间.标题. ...

  4. python爬虫beautifulsoup4系列4-子节点

    前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一.子节点 1.以博客园首页的摘要为例:<div class="c_b_p_desc ...

  5. python爬虫beautifulsoup4系列4-子节点【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 很多时候我们无法直接定位到某个元素,我们可以先定位 ...

  6. 《Python爬虫学习系列教程》学习笔记

    http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...

  7. [转]《Python爬虫学习系列教程》

    <Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...

  8. Python爬虫beautifulsoup4常用的解析方法总结(新手必看)

    今天小编就为大家分享一篇关于Python爬虫beautifulsoup4常用的解析方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧摘要 如何用beau ...

  9. Python爬虫学习系列教程

    最近想学一下Python爬虫与检索相关的知识,在网上看到这个教程,觉得挺不错的,分享给大家. 来源:http://cuiqingcai.com/1052.html 一.Python入门 1. Pyth ...

随机推荐

  1. Echarts使用小结

    还是先来简单的了解一下Echart是什么吧? ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前 ...

  2. 【http学习杂记】2017年7月14日

    1. 连接超时 连接超时是tcp协议层次, 此时服务器还没有处理请求数据,也就是说服务器的逻辑开没有执行 2. 请求超时 请求超时属于服务器已经连接成功并开始处理,但是时间比较长,大于你设置的请求超时 ...

  3. python邮件处理

    SMTP SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.Python对SMTP支持有 ...

  4. tomcat 开启远程debug

    修改 tomcat  目录下  /bin/catelina.sh #                   execution immediately after startup. Default is ...

  5. 浅析Java CompletionService

    JDK的CompletionService提供了一种将生产新的异步任务与使用已完毕任务的结果分离开来的服务.生产者 submit 运行的任务.使用者 take 已完毕的任务,并依照完毕这些任务的顺序处 ...

  6. BZOJ1135:[POI2009]Lyz(线段树,Hall定理)

    Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人.xi为负,则代表走了这么多人 ...

  7. virtualbox+vagrant学习-2(command cli)-9-vagrant Plugin命令

    Plugin 格式: vagrant plugin <command> [<args>] 这是用来管理插件的命令. 1)Plugin Expunge 格式: vagrant p ...

  8. react中受控组件相关的warning

    在表单中,报如下的错,意思是非受控的输入框变成了受控的,报错信息如下 Warning: A component is changing an uncontrolled input of type te ...

  9. (转)Python学习笔记系列——Python是一种纯粹的语言

    此文出自知乎灵剑,原文传送门:https://zhuanlan.zhihu.com/p/23926957. 在摸索适合自己的语言学习方法,看到一篇好文章,转之,侵删. Python的语法范式相当多.知 ...

  10. 拥抱.NET Core系列:MemoryCache 初识 (转载)

    阅读目录 MSCache能做什么? 从IMemoryCache说起 开发者的体验 写在最后 Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set.Add.Get.Remove. ...