python小课堂31 - 初识原生爬虫

前言

在上一期介绍了爬虫之前必会浏览器的开发者工具,忘记的童鞋可以在回顾一下:

本篇文章将以实战来介绍一期 “原生” 爬虫,这里的原生是指使用 python 自带的请求库来完成爬虫,不借用第三方库(如 requests....贼好用!谁用谁知道...)。同时需要注意的是本次案例不使用任何爬虫框架去完成,大部分知识依赖于前面介绍的基础知识,少部分知识需要后续介绍学习。

PS:本期爬虫案例并不是最完善的爬虫,仅为了将爬虫的原理基础介绍清楚。要清楚,爬虫具有时效性,由于现在各大网站都有相关的反爬机制,所以也许现在写的爬虫代码此时适用,但过些时日就可能失效了,这点需要注意。本章仅供学习参考,请在遵守网络法律前提下进行相关操作。

什么是爬虫?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 -- 百度百科

引用了下百度百科对爬虫的定义,接下来用笔者理解的大白话来说下:在咱们现在生活的这个时代,多数信息的传递都是以浏览器作媒介进行传播的,比如你要查寻一部电影,你首先得打开浏览器,然后打开百度(或谷歌或其他搜索引擎)的主页,在搜索框输入XXXX,回车后就会跳转到相应的网页,而这些所谓的搜索引擎,如百度,其本身就是一个大爬虫。

互联网就像一张蜘蛛网,你可以想象成每个网页就是粘在蜘蛛网上被包裹住的食物,在这张蜘蛛网上,不同网页组成了许多食物,食物的种类过于繁多,作为人类的你,想要从中挑选最美味,最可口的食物很是麻烦,于是创造出来一个可以行进于蜘蛛网上的“蜘蛛”,通过给蜘蛛下达规则性的命令,让蜘蛛来在这张网上帮你搜寻你想要的“食物”。

上面所讲的小故事,人类泛指开发者,蜘蛛泛指爬虫,而食物则泛指网页,或者说是信息。

最后一句话总结一下:爬虫,即在网络上,根据你所定义的规则流程,通过程序化将你想要的,有用的信息获取下来,这个程序称之为爬虫。

王者荣耀直播

这里就用笔者近期玩的游戏来做一次有趣的分享吧,王者荣耀。

众所周知,近几年随着物质生活的提高,相应精神物质也随之上升,越来越多的游戏被大家所认知,比如风靡一时的 dota2、 LOL等,近两年移动端的火热,例如吃鸡、王者荣耀等。。。随着游戏本身“社会地位”的上升,相应的越来越多人选择做起了直播,观众们可以第一视角观看直播的犀利操作,从中学习相关操作,提升自己的操作意识。

那这里呢,笔者就以王者荣耀的直播为例(因为在王者方面,笔者也算是上过王者的男人)废话不多说,下面进入正题。

明确信息目标

首先,写爬虫的第一步就是要明确自己的信息,你要从网络中获取怎样的信息?它们有怎样的特征呢?所以不急,先确定你要爬取(或者说是获取)的内容。

打开熊猫 tv 直播间,让我们来分析一下:

但从首页上看去,除了中间有视频播放器以外,没有什么笔者想要的信息。但是可以看到首页旁边,有个分类按钮,点过去看下:

可以看到,游戏的种类繁多,我们可以搜索下想要的王者荣耀,继续点进去看下:

当前所有与王者荣耀直播的相关主播,随便找一个,比如下面这个:

上图可知,有主播自己起的直播标题,还有主播的网名,以及当前的热度(小眼睛应该就是热度,小汽车好像是当前观看的人数)。嗯,笔者目标很明确,就是想抓取当前热度最高的主播,学习一波大佬的操作!

明确抓取目标:直播标题、主播网名、热度(小眼睛)。

分析网页结构

目标明确以后,来使用浏览器开发者工具分析下对应数据的网页结构,打开F12,分析如下:

直播标题:

主播网名:

热度(小眼睛图标):

总结

好了,以上就是本篇对于熊猫直播网页结构的分析。

总结一下爬虫前需要准备的:

1. 明确目的,知道自己的需求是什么,想要什么样的数据。

2. 找到数据对应的网页,比如笔者这里想找王者直播。

3. 根据目的,分析出网页数据对应的 HTML 结构标签代码。

前三步是本章介绍的主要内容,消化一下!下面的步骤是实现的思路,放在下一篇文章去写吧.....

TODO LIST (待做的....)

模拟 Http 请求,使用 Python 原生包对服务器发起请求,获取到服务器返回给我们的 HTML 代码。

通过返回的 HTML 代码,使用正则表达式等手段提取出我们想要的数据信息即可!(当然这里有些网站是肯定会遇到坑,现在没有哪个网站会让你轻轻松松获取信息的,比如斗鱼直播的数据...毕竟都 9102 年了!)

以上便是一个简单的小小只爬虫原理概念性的介绍了!下篇文章,尽请期待....

有想探讨python的同学,欢迎关注公号:migezatan.(咪哥杂谈)。

python原生是什么意思_python小课堂31 - 初识原生爬虫相关推荐

  1. 【python小课堂专栏】python小课堂31 - 初识原生爬虫

    python小课堂31 - 初识原生爬虫 前言 在上一期介绍了爬虫之前必会浏览器的开发者工具,忘记的童鞋可以在回顾一下: python小课堂30 - 爬虫之前必会的浏览器开发者工具. 本篇文章将以实战 ...

  2. python print 换行_Python小课堂第21课:规整一下我们的输出之打印格式化与字符串...

    整齐的输出,不仅美观,还能方便我们更容易的定位问题的重点.所以我们有必要将我们的输出内容美化一下! 请点击右上角"关注"按钮关注我们,跟着木辛老师深入浅出的掌握输出格式化的方法吧! ...

  3. python导入不在同一路径的函数_Python小课堂|模块

    Python3   模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一 ...

  4. python 对象_Python小课堂面向对象

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  5. python不等于_Python小课堂|注释+运算符

    注释 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如: # 这是一个注释 print("Hello, ...

  6. python 快乐数判断_Python小课堂 习题答案和讲解

    Python小课堂 第三课 之 手敲代码 逐步熟悉下编程开发 测试题目 (1)如何启动IDLE?在Windows中的操作是这样的 : 点击"开始"➡️搜索框输入IDLE,点击回车, ...

  7. python用with读文件的好处_python小课堂39 - 用 with 优雅的读写文件

    python小课堂39 - 用 with 优雅的读写文件 前言 本篇来介绍一下 Python 中的关键词 with 的小技巧.但是在了解 with 之前,需要先了解一下如何使用 Python 对文件进 ...

  8. python导入同级包_python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

  9. python 引入同一路径的类_python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

最新文章

  1. iOS开发8:使用Tool Bar切换视图
  2. acl中in和out的区别
  3. 13_MFC工具条和状态栏
  4. c语言超级经典400道题目,C语言超级经典400道题目.doc
  5. 计算机组装方案及分析,《计算机组装与维护》课程整体教学方案
  6. 学习Java编程到底是为了什么,该具备什么样的能力
  7. 学习笔记(13):Python网络编程并发编程-解决粘包问题-终极版本
  8. R语言基础入门(6)之向量下标和子集
  9. matlab求感知距离的命令,感知机算法(MATLAB)
  10. 数据库设计_数据库设计(一)分析及逻辑设计
  11. java.lang.VerifyError: Expecting a stack map frame
  12. 算数基本定理 + 例题
  13. C++中字符编号ASCII码表
  14. appium之定位方式
  15. 计算机基本应用Excel考题,excel考题_大学计算机基础期末考试试题word ppt excel的操作题_淘题吧...
  16. 线阵相机调帧率_线阵相机调试文档
  17. 微信小程序连接“萤石云”
  18. 饥荒联机服务器配置文件翻译,饥荒设置界面翻译图解
  19. java根据出生年月计算年龄
  20. Cabbage语言代码示例

热门文章

  1. android 画布 透明,Android透明画布(surfaceview)
  2. Android 抓包 Fiddler Https443问题
  3. 金山WPS葛珂:“渠道”是阻碍2B爆发的最后一块绊脚石
  4. 卓为VC——曲艺杂谈——三国猛将赵云为何不受重用
  5. VC10如何在Release模式下调试代码
  6. 简单猜数字游戏Java实现
  7. lol提示游戏环境异常重启计算机,lol游戏环境异常请重启机器该怎么办
  8. CUDA安装错误解决Missing recommended library
  9. 如何做一个基于微信共享充电桩小程序系统毕业设计毕设作品
  10. php如何设置小数后一位,PHP问题:PHP如何保留小数点后一位,并且不四舍五入