python爬虫beautifulsoup4系列2
前言
本篇详细介绍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的更多相关文章
- python爬虫beautifulsoup4系列1
前言 以博客园为例,爬取我的博客上首页的发布时间.标题.摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能. 一.安装 1.打开cmd用pip在线安装beauti ...
- python爬虫beautifulsoup4系列2【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇详细介绍beautifulsoup4的功能,从 ...
- python爬虫beautifulsoup4系列1【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 以博客园为例,爬取我的博客上首页的发布时间.标题. ...
- python爬虫beautifulsoup4系列4-子节点
前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一.子节点 1.以博客园首页的摘要为例:<div class="c_b_p_desc ...
- python爬虫beautifulsoup4系列4-子节点【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 很多时候我们无法直接定位到某个元素,我们可以先定位 ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
- Python爬虫beautifulsoup4常用的解析方法总结(新手必看)
今天小编就为大家分享一篇关于Python爬虫beautifulsoup4常用的解析方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧摘要 如何用beau ...
- Python爬虫学习系列教程
最近想学一下Python爬虫与检索相关的知识,在网上看到这个教程,觉得挺不错的,分享给大家. 来源:http://cuiqingcai.com/1052.html 一.Python入门 1. Pyth ...
随机推荐
- Subversion、TortoiseSVN、Ankhsvn+VS使用
Subversion为版本控制软件的服务器端.VisualSVN Server 可以在Windows平台安装和管理全功能的Subversion server. TortoiseSVN为Subversi ...
- ES(ElasticSearch)学习总结
基本概念 一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库.是一个接近实时的搜索平台 ...
- RAID廉价磁盘冗余阵列介绍
RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力.目前服务器级别的计算机都支持插入多块磁盘(8块或者更多),通过使用RAID技术,实现数据在多块磁盘上的并发读写 ...
- [USACO08DEC]Patting Heads
嘟嘟嘟 这题还是比较水的.首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,.那么 ...
- 【node.js】GET/POST请求、Web 模块
获取GET请求内容 node.js 中 url 模块中的 parse 函数提供了这个功能. var http = require('http'); var url = require('url'); ...
- 集合之Stack
在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过 ...
- unittest中setUp与setUpClass执行顺序
最基础的概念 1.setUP(self)看下面的执行顺序 import unittest class TestGo(unittest.TestCase): def setUp(self): print ...
- 蓝桥杯-k倍区间
http://lx.lanqiao.cn/problem.page?gpid=T444 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, .. ...
- 拥抱.NET Core系列:MemoryCache 初识 (转载)
阅读目录 MSCache能做什么? 从IMemoryCache说起 开发者的体验 写在最后 Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set.Add.Get.Remove. ...
- Html+Css实现梯形选项卡
1,先看一下效果图 2,梯形通过定位和设置Border来实现的,平行四边形通过旋转来实现的. 3,代码如下 (1)HTML代码 <html lang="en" xmlns=& ...