写给小白,Python 爬虫学习思路

爬虫是Python是一个很经典的方向,大多数的小伙伴看到的是Python爬虫的就业效果,确实Python爬虫学习成本低(学习快),就业效果好,特别适合新手入门,但是也要关注另外一个点,就是Python爬虫对编程能力提升方面也是很全面的,那么基于这些我们来聊聊Python爬虫的知识进阶流程。

图片

爬虫流程

爬虫,首先要了解爬虫原理,爬虫是用来请求服务器(通常是WEB服务器)获取资源的程序,所以首先了解python爬虫的工作流程,然后根据流程我们来细化:

1)有一个网页上面有一步优美的霸道总裁文,我们想下载,但是页数太多,使用浏览器一页,一页的访问太麻烦了。所以想用程序解决。

2)首先找到小说的网址,网址代表的是小说内容在服务器的位置。

3)然后查看小说内容在网页里的位置,因为网页上面有广告,导航,推荐,这些不是我们需要的。

4)然后查看浏览器,看看浏览器当中成功的请求,看看请求网站浏览器携带了什么内容去请求服务器。

5)根据上面得到的消息,使用脚本模拟浏览器的行为,通过路由,访问服务器,获取资源。

6)但是获取到的资源是一个一个的HTML源码,有广告,导航,推荐,(因为服务器并没有特意为你提供一个刚刚好的接口),所以需要根据上面的分析将数据匹配出来。

7)好多人到了上面的步骤就觉得爬虫结束了,实际上不是的,首先,还得对数据进行处理啊,没有经过处理的数据和垃圾没有任何区别,常用的处理大概分为存储,分析两种

8)存储是将过滤清洗后的数据存入数据库,文件,下载到目录等

9)分析包括对数据进行分组,聚合,图像渲染等。

所以爬虫实际上看也是一种很牛的数据分析,因为懂分析的人才能做出更加精确高效的爬虫,总结上面的步骤,我们可以把爬虫分为以下的几个要点:

1、网站抓分析分析

2、数据请求

3、数据过滤清洗

4、数据存储

5、数据使用

爬虫基础知识

基于上一步来讨论爬虫基础知识点:

1、网站抓包分析

网站抓包分析是指分析浏览器请求服务器的请求,分析得到爬虫请求需要需要携带参数的步骤,基础的知识点包括:

1)HTTP协议,这个是WEB请求的核心协议,只有了解了这个才能真正的搞懂网站请求过程。

2)HTML 基本的HTML结构要懂,要不然爬取的内容不好过滤。

3)抓包工具,常用的浏览器F12,学会到哪里可以找到浏览器请求的记录和当中的内容

2、数据请求

数据请求这里更多说的是Python具体的功能模块和请求过程当中的原理,和第一步可能有重叠,但是这一步需要强调:

1)请求模块:urllib,request,selenium 3个,请求框架 scrapy 1个,这些东西需要先在掌握一个,然后慢慢入门其他的。

2)请求过程当中的回话技术(HTTP当中的一部分,这里强调),cookie,session技术原理

3、数据过滤清洗

这里需要的是将请求的html,或者数据进行清洗,具体的模块有:

这里首先使用最频繁的其实不是哪些神奇的模块,而是字符串的基本处理方法,这个使用的是真的多,作者就是通过爬虫这里把字符串的方法彻底掌握的(因为使用太频繁了)。

1)HTML匹配模块:re,lxml,beautifulsoup

2)数据清洗:Python基本的数据结构操作,json等格式化文字模块

4、数据存储

这一步是很好理解的:

1)Python文件操作,内置open方法

2)Python 数据库操作,PyMysql,redis等等…

5、数据使用

使用就更多了,不同的需求,不同的场景,使用也是不同的:

1)numpy 直接分析使用,

2)jinja2,pyecharts 渲染使用

爬虫进阶知识点

上面的知识点大家有所掌握之后,可能对一些简单的网站就可以爬取了,但是如果提高的话,还是需要几点思路:

1、让爬虫更加健壮
1)基于类,函数进行代码封装重写

2)添加异常捕获,断言,日志等功能

3)使用其他框架管理爬虫,比如,可视化界面,crontab定时等等

2、让爬虫更加高效
提高效率可能有很多种,为了方便说明还是按照上面的顺序来聊:

1)网站抓包首先说可以使用更加专业的工具,提高抓包效率,比如

PostMan请求,warshak等

2)数据请求,可以提高请求的频率,比如:

  • 多线程爬虫
  • 协程爬虫
  • 多进程爬虫

分布式爬虫,这里强调,就是基于消息队列(redis,rabbitmq,kafka)接入设计模式(生产消费者模式),进行多台服务器同时运行爬虫。

这里要注意的是,请求的效率太快了,导致被请求服务器压力变大,可能引起服务器宕机或者承担法律责任,所以面向爬虫开发又叫做…

3)数据过滤,这里同样可以使用生成消费者模式和消息队列对数据进行批量处理,但是要注意逻辑顺序。

4)数据存储,除了刚才考虑到的文件和数据库之外,对于大数据可能出现的有ES或者HBASE数据库。

5)数据使用,需要根据具体的场景来讨论,这里就不一一列举了,上述就是我们今天总结的知识点,如有不当,多多指出。

最后

如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。
在这里插入图片描述

👉面试刷题👈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值