一个Python爬虫工程师学习养成记

本文介绍了Python爬虫工程师的学习路径,从初学爬虫到应对反爬虫策略,涉及Ajax、动态渲染、多进程多线程、分布式、验证码、封IP等问题。通过JavaScript逆向和App逆向技术,以及智能化解析,提升爬虫技能。同时,探讨了爬虫与运维的关联,包括部署、监控和数据存储。最后,强调了爬虫学习过程中涉及的广泛技术领域,如前端开发、后端开发、App开发、网络安全等。
摘要由CSDN通过智能技术生成

大数据的时代,网络爬虫已经成为了获取数据的一个重要手段。

但要学习好爬虫并没有那么简单。首先知识点和方向实在是太多了,它关系到了计算机网络、编程基础、前端开发、后端开发、App 开发与逆向、网络安全、数据库、运维、机器学习、数据分析等各个方向的内容,它像一张大网一样把现在一些主流的技术栈都连接在了一起。正因为涵盖的方向多,因此学习的东西也非常零散和杂乱,很多初学者搞不清楚究竟要学习哪些知识,学习过程中遇到反爬也不知道用什么方法来解决,本篇我们来做一些归纳和总结。

初学爬虫

一些最基本的网站,往往不带任何反爬措施。比如某个博客站点,我们要爬全站的话就顺着列表页爬到文章页,再把文章的时间、作者、正文等信息爬下来就可以了。

那代码怎么写呢?用 Python 的 requests 等库就够了,写一个基本的逻辑,顺着把一篇篇文章的源码获取下来,解析的话用 XPath、BeautifulSoup、PyQuery 或者正则表达式,或者粗暴的字符串匹配把想要的内容抠出来,再加个文本写入存下来就完事了。

代码很简单,就几个方法调用。逻辑很简单,几个循环加存储。最后就能看到一篇篇文章就被我们存到自己的电脑里面了。当然有的同学可能不太会写代码或者都懒得写,那么利用基本的可视化爬取工具,如某爪鱼、某裔采集器也能通过可视化点选的方式把数据爬下来。

如果存储方面稍微扩展一下的话,可以对接上 MySQL、MongoDB、Elasticsearch、Kafka 等等来保存数据,实现持久化存储。以后查询或者操作会更方便。

反正,不管效率如何,一个完全没有反爬的网站用最最基本的方式就搞定了。

到这里,你就说你会爬虫了吗?不,还差的远呢。

为解决初学者学习上的困难,专门建立的Python学习扣qun:784758214,从0基础的python脚本到web开发、爬虫、django、数据挖掘数据分析等,0基础到项目实战的资料都有整理。送给每一位python的小伙伴!每晚分享一些学习的方法和需要注意的小细节,学习路线规划,利用编程赚外快。点击加入我们的 python学习圈

Ajax、动态渲染

随着互联网的发展,前端技术也在不断变化,数据的加载方式也不再是单纯的服务端渲染了。现在你可以看到很多网站的数据可能都是通过接口的形式传输的,或者即使不是接口那也是一些 JSON 的数据,然后经过 JavaScript 渲染得出来的。

这时候,你要再用 requests 来爬那就不顶用了,因为 requests 爬下来的源码是服务端渲染得到的,浏览器看到页面的和 requests 获取的结果是不一样的。真正的数据是经过 JavaScript 执行的出来的,数据来源可能是 Ajax,也可能是页面里的某些 Data,也可能是一些 ifame 页面等等,不过大多数情况下可能是 Ajax 接口获取的。

所以很多情况下需要分析 Ajax,知道这些接口的调用方式之后再用程序来模拟。但是有些接口带着加密参数,比如 token、sign 等等,又不好模拟,咋整呢?

一种方法就是去分析网站的 JavaScript 逻辑,死抠里面的代码,揪出来这些参数是怎么构造的,找出思路来了之后再用爬虫模拟或重写就行了。如果你解出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值