用python基础语法简单写个原生小爬虫获取主播排名(上)

导读

在学习python的小白大军里,相信不少人是奔着往爬虫方向走的。尤其是零基础的小伙伴,一套基本语法学习下来,发现离自己去写爬虫的目标好像依然有很长一段路,也有不少人放弃了。

其实,只要你把基础语法学好了,已经具备了编写一个原生爬虫的能力了,只是你自己不知道而已。今天给大家讲讲,怎么把自己学到的东西串联起来做个原生爬虫。

知识储备

  • 1、import导入用法
  • 2、for循环的运用
  • 3、面向对象(知道怎么创建函数、类、以及实例化)
  • 4、正则表达式(这是爬虫最重要的!)

开发工具

本教程基于python3.5及其以上版本
本教程以vscode开发(pycharm或其他工具也行)


一、找到想要爬取的网页

这里以熊猫直播为例子:

打开浏览器,输入网址,然后点击检查,查看当前页面的html标签
这里写图片描述

以熊猫tv的吃鸡板块为例,可以看到,目前所有主播的房间都有观看人数等数据在上面,那么我们要做的就是把“主播姓名”和“对应的观看人数”抓取下来

二、找到爬取目标的标签

这里就算不懂前端的小白也可应该可以理解,所谓网页不过是用一个个堆砌出来的,上面每一个数据都对应一个标签,这就好办了,点击鼠标查找(图中圈住的地方),然后把鼠标移到任意主播名字上点击一下,就可以知道它对应什么标签了
这里写图片描述
可以看到“主播名字”和“观看人数”对应的标签都蕴含在名为<div class ='video-info'></div>这组标签里了,那么接下来只需要用python把每一个“它”获取下来,再从中抽取自己想要的信息就完成一个爬虫啦!

三、模拟http请求

下面开始写代码了

from urllib import request 
import re
#首先当然是导入模块啦,模拟http请求一般用urllib库,从里面导入request,即使基础教程
#没有学到也没关系,百度一下就行了。 而re不用说也知道是引入正则表达式了。
class Spider():
    url = 'https://www.panda.tv/cate/pubg?pdt=1.24.s1.18.3nd8ke922g2'
    #把网址用url来接收
    def __get_content:(self):
        r = request.urlopen(Spider.url)
        htmls = r.read()
     #获取到了url当然要用个变量来接收了,不然放哪?这里用‘r’来接收了,然后
     #用了read方法直接读取url里的所有内容(也就是所有html标签)

四、建立入口方法

之后只要写4-5个函数就可以完成整个爬虫了,但是运行的时候各自调用会很麻烦,这里就用到面向对象思想了,用一个总的def方法来构建入口,往后每新增一个def就把它也添加到入口这里。

def run(self)
    self.__get_content()
    #先把之前写的__get_content()方法放进来

spdier = Spider()
spider.go
#提前写好实例化,等全部函数写完之后,直接用go调用所有函数,这样就方便许多了。

今天先写这么多,这个教程会分为上、中、下三篇,其实加起来的代码量没有50行,但是为了让入门的小伙伴能理解,所以篇幅会长一点。

猜你喜欢

转载自blog.csdn.net/weixin_42833042/article/details/82194266
今日推荐