Python 爬虫进阶?_python 爬虫
现在是刚Python入门,也编写了一些简单的爬虫代码,如通过正则,多线程的爬虫,爬取贴吧里面的图片,爬取过代理网站的IP,还接触了scrapy方面的知识。想继续深入下去,还需要做哪些方面的工作,另外还需要看那些方面的书,以及一些开源项目,求各位知乎大神指点下。。。
谢谢!!!
虽然学习的确应该追求本质,但是如果一个学习过程太过冗长又没有实质性进展,很容易让人失去继续学习下去的动力。
比如说,验证码破解(一般不谈黑产链的活,下不为例),居然推荐了pandas和numpy。
如果题主没有相关的基础知识,那么题主需要先学习线性代数、统计和概率、图像识别基础、机器学习基础,然后再来看你推荐的这个K近邻算法,发现原来还需要一堆训练集,好不容易折腾完了之后又发现,卧槽,原来这算法时空复杂度这么高……
那么我的推荐是,使用 Google 的 OCR 开源库 tesseract,对应的Python包是pytesser,如果只是做简单(没有数字重叠)的数字识别,那么仅需调用接口就能完成识别。
然而关键在于,这压根就应该属于图像识别而不属于爬虫进阶嘛!
———————————————-
在我看来,不管用什么语言写爬虫,进阶的第一门课一定得是学会自己抓包,分析请求和返回数据。这当中会有一些字段恶心到你,比如通过base64或者md5加密,在模拟登陆验证中通常还会遇到RSA算法。如果你说你懒得学,那么上大杀器Selenium,但是你要忍受它对系统资源的占用(往往要启动浏览器和多个标签页)和不那么快速的爬取速度。
针对一些网站的爬取就像是在玩攻防,网站设置了种种反抓取的坑等着你掉进去。这时候你要学会维护好自己的User-Agent,维护好自己的Cookie池,维护好自己的代理IP池,添加恰当的Host和Referer,以让对方服务器觉得这一切看起来都跟真的一模一样,那么你的爬虫开发能力,已经入门了。
到此为止,这些知识还和 Python 没有半毛关系,但你知道了要干什么之后,再去搜 Python 相关的工具库,你就会发现原来 Requests 可以轻松构造一个包含自定义 payload 和 headers 的 post 请求;你就会发现原来 Scrapy 中可以使用TCP包注入来伪造IP,还能玩SYN FLOOD拒绝服务攻击(误)……
所以说,你要做的是爬虫进阶,再用 Python 去寻找一个快捷的实现途径,然后就会发现,还是 Python 大法好,不愧为黑客第一语言。
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:SimonS
来源:知乎
转载请注明:数据分析 » Python 爬虫进阶?_python 爬虫