导读
在学习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调用所有函数,这样就方便许多了。