半路学Python爬虫,学到什么程度可以去找工作了?_学会scrapy是不是能找工作了

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

③ 能设置user-agent进行数据爬取,设置代理等
④ 知道什么是Request,什么是response,会使用Fiddler等工具抓取及分析简单地网络数据包;
⑤ 对于动态爬虫,要学会分析ajax请求,模拟制造post数据包请求,抓取客户端session等信息,对于一些简单的网站,能够通过模拟数据包进行自动登录。
⑥ 对于一些难搞定的网站学会使用phantomjs+selenium抓取一些动态网页信息
⑦ 并发下载,通过并行下载加速数据爬取;多线程的使用。

【高级爬虫工程师】
① 能够使用Tesseract,百度AI,HOG+SVM,CNN等库进行验证码识别。
② 能使用数据挖掘技术,分类算法等避免死链。
③ 会使用常用的数据库进行数据存储,查询。比如mongoDB,redis;学习如何通过缓存避免重复下载的问题。
④ 能够使用机器学习的技术动态调整爬虫的爬取策略,从而避免被禁IP封禁等。
⑤ 能使用一些开源框架scrapy,scrapy-redis等分布式爬虫,能部署掌控分布式爬虫进行大规模数据爬取。


**爬虫技能掌握简要对照:**



【初级】
1)Python语言基础

2)相关的请求库
urllib、requests、selenium(动态网页用得上)

3)相关的解析库
BeautifulSoup、XPath、PyQuery、Re正则表达式

4)相关的数据库
MySQL、MongoDB

【中级】
1)Ajax(能通过Ajax接口获取数据)

2)了解基本的 Javascript

3)Puppeteer(基于JS的爬虫框架,可直接执行JS)

4)Pyppeteer(需要python异步知识)

5)多任务基础 & 爬虫提速
多进程、多线程、协程

6)抓取工具
fiddler、Charles、chrome、firefox

7)自动化爬取(爬App)
adb工具、Appium

8)Splash(动态渲染页面的抓取)

9)mitmproxy(中间人代理工具)

【高级】
1)爬虫框架
Scrapy、Pyspider

2)消息队列相关
RabbitMQ、Celery、Kafka

3)Redis 数据库

4)Scrapy
Redis(scrapy的redis组件)、Redis-BloomFilter(scrapy的布隆过滤器)、Cluster(分布式爬虫框架)

5)应对反爬的技术
验证码破解、IP代理池、用户行为管理
分流技术:cookies池、token池、sign池

【更高一级】
JS逆向、App逆向、运维、智能化爬虫


**回到问题,针对python爬虫的面试一般会涉及到以下几个部分:**


**1、基本的编码基础Python**


基础的数据结构你得会吧,数据名字和值得对应(字典),对一些url进行处理(列表)等等,爬虫给人的感觉好像对Python编程的知识要求并不高,确实,搞懂基本数据结构、语句,会写写函数好像就OK了,自己业余玩玩还行。


如果要找工作面试爬虫工程师,这远远不够,不要小瞧了爬虫工程师对编程基本功的要求,编程基本功要扎实。除了基本的函数,Python的高级特性、面向对象编程、多线程、装饰器都要熟悉。


分享一个最近在听的同行Python大佬的免费直播分享课,有提到很多Python岗位面试的经验和技巧,还蛮实用,传送门见下方↓↓


编程的功底,以及对语言的理解,从某种程度上可以看出学习能力和发展潜力。


**2、HTTP知识**


必备技能,要爬的是网页,所以必须要了解网页。


首先html文档的解析方法要懂,比如子节点父节点,属性这些。我们最终看到的网页是被浏览器处理了的,原始的网页是由很多标签组成的。


处理最好使用html的解析器,如果自己用正则匹配的话坑会很多,我个人xpath用得多,跨语言,表达比较好,但是呢也有缺点,正则、逻辑判断有点别扭。


HTTP协议要理解;HTTP协议本身是无状态的,那么“登录”是怎么实现的?这就要求去了解一下session和cookies了。


GET方法和POST方法的区别;


**3、浏览器要熟练**


爬虫的过程其实是模拟人类去浏览器数据的过程,所以浏览器是怎么访问一个网站的,要学会去观察。


**Chrome的Developer Tools提供了访问网站的一切信息;**


从traffic可以看到所有发出去的请求,copy as curl功能可以给你生成和浏览器请求完全一致的curl请求!我写一个爬虫的一般流程是这样的,先用浏览器访问,然后copy as curl看看有哪些header,cookies,然后用代码模拟出来这个请求,最后处理请求的结果保存下来。


**4、数据库**


这个就不用多讲了,数据保存肯定会要用到数据库的。有些时候一些小数据也可以保存成json或者csv等。


推荐使用NoSQL的数据库,比如mongodb,因为爬虫抓到的数据一般是都字段-值得对应,有些字段有的网站有有的网站没有,mongo在这方面比较灵活,况且爬虫爬到的数据关系非常非常弱,很少会用到表与表的关系。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/043b46e4adc1439abded07ac38383366.png)  
 **5、爬虫与反爬**


这是一个不断较量的过程,就像攻击武器与防御武器一样,双方总是在不断升级。


**常见的反爬措施有:**


1)IP限制


网站可能将识别的ip永久封杀,这种方式需要的人力比较大,而且误伤用户的代价也很高。但是破解办法却非常简单。目前代理池几乎是搞爬虫的标配了,甚至还有很多高匿代理等好用的东西,所以这基本上只能杀杀小爬虫。


2)登录限制


这也比较常见,不过公开信息的网站一般不会有这个限制,其实反爬措施或多或少的都会影响真实用户,反爬越严格,误杀用户的可能性也越高。


对爬虫来说,登录同样可以通过模拟登录的方式解决,加个cookie就行了(话又说回来,网络的原理很重要)。


3)访问频率


这很好理解,如果访问太频繁,网站可能针对你的ip封锁,这和防DDoS的原理一样。


碰到这样的,限制一下爬虫任务的频率和时间就可以了,尽量让爬虫想人类一样访问网页(比如随机sleep一段时间,如果每隔3s访问一次网站很显然不是正常人的行为)。


也就是控制访问的时间和频率;


4)通过Header封杀


一般浏览器访问网站会有header,比如Safari或者Chrome等等,还有操作系统信息,如果使用程序访问并不会有这样的header。


破解也很简单,访问的时候加上header就行。


5)验证码


验证码的形式各种各样的都有,难度不小;


验证码是专门用来区分人和计算机的手段,对于反爬方来说,这种方式对真实用户和搜索引擎(其实可以通过记录搜索引擎爬虫的ip来区别对待,可以解决)的危害比较大。


但这种方法也并不是无敌的,通过现在很火的机器学习可以轻松的识别大部分的验证码!Google的reCAPTCHA是一种非常高级的验证码,但是听说通过模拟浏览器也是可以破解的。


6)网站内容反爬


有一些网站将网站内容用只有人类可以接收的形式来呈现(其实反爬就是区别对待人类和机器嘛)。


比如将内容用图片的形式显示,但是近几年来人类和机器的差别越来越小,图片可以用OCR准确率非常高地去识别。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/282cd7c60cd548538db4440787e341a7.png)  
 7)JavaScript脚本动态获取网站数据


有一些网站(尤其是单页面网站)的内容并不是通过服务器直接返回的,而是服务器只返回一个客户端JavaScript程序,然后JavaScript获取内容。


更高级的是,JavaScript在本地计算一个token,然后拿这个token来进行AJAX获取内容,而本地的JavaScript又是经过代码混淆和加密的,这样我们做爬虫的通过看源代码几乎不可能模拟出来这个请求(主要是token不可能破解)。


但是我们可以从另一个角度:headless的浏览器,也就是我们直接运行这个客户端程序,这可以100%地模拟真实用户。


上面说的是几种比较主流的反爬,当然还有非常多奇葩的反爬。比如返回假数据、返回图片化数据、返回乱序数据、返回骂人的数据、返回求饶的数据,那都具体情况看着办吧。


这些反爬也得小心点,之前见过一个反爬直接返回 rm -rf / 的也不是没有,你要是正好有个脚本模拟执行返回结果,后果自己想象哈。


看到这里,爬虫的一些涵盖知识点也差不多了,怎么样,梳理一下,上面总结的可以算是从爬虫小白到爬虫高手的路径了。爬虫重在实践,里面每个方向其实可研究的点非常多,要记得多练习实战哟!


实战薄弱一点的同学可以试试我上面分享的大佬的直播课,实战案例演示非常多,每一步都讲解的到位,小白也能听得懂~获取方式在下方


**6、面试经验分享**


**【Python爬虫知识储备】**


Python爬虫相关的知识与经验储备,通常也是面试官考察的重点,比如:


* 你遇到过的反爬虫的策略有哪些?
* 你常用的反反爬虫的方案有哪些?
* 你用过多线程和异步吗?除此之外你还用过什么方法来提高爬虫效率?
* 有没有做过增量式抓取?
* 对Python爬虫框架是否有了解?


初级:



如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费**学习**大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。



### 一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。



![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

### 二、学习软件



工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。



![](https://img-blog.csdnimg.cn/img_convert/8c4513c1a906b72cbf93031e6781512b.png)



### 三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

![](https://img-blog.csdnimg.cn/img_convert/eec417a3d4d977b313558a11d3c13e43.png)



### 四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。



![](https://img-blog.csdnimg.cn/img_convert/ec690501ea1dbe2cb209cbf4013c2477.png)  

![](https://img-blog.csdnimg.cn/img_convert/3eaeaa6747419c9d86c72e0d10d0a6a2.png)



### 四、实战案例

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



![](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)



### 五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

![](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
![img](https://img-blog.csdnimg.cn/img_convert/2a78446af747eef6a208f43bd7f420cf.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
[外链图片转存中...(img-fvtjXi91-1713483310496)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值