python 爬虫进阶

铁扇公主1 发布于 2017/03/22 22:13
阅读 672
收藏 4

1. 爬取重 ajax 页面, 推荐谷歌优先搜索 phantomjs, 其次selenium. 
2. 破解图片验证码, 推荐谷歌开源库 pytesser  进一步深入可以学习<高等数学-线性代数>, 谷歌搜索 pandas, numpy, k近邻算法.
3. 过滤器, 推荐谷歌搜索 布隆过滤器 及其c实现; 谷歌搜索 Python 如何导入c模块.
4. 分布式爬虫(消息队列). 推荐谷歌搜索 rabbitmq.
5. 任务调度. 推荐谷歌搜索 schedule.

基本上是这样一个学习阶梯. 另: 反对学习任何爬虫框架, 尤其 scrapy, pyspider. 原因:这两个框架太优秀,太全。

 

 

进阶的第一门课一定得是学会自己抓包,分析请求和返回数据。这当中会有一些字段恶心到你,比如通过base64或者md5加密,在模拟登陆验证中通常还会遇到RSA算法。如果你说你懒得学,那么上大杀器Selenium,但是你要忍受它对系统资源的占用(往往要启动浏览器和多个标签页)和不那么快速的爬取速度。

针对一些网站的爬取就像是在玩攻防,网站设置了种种反抓取的坑等着你掉进去。这时候你要学会维护好自己的User-Agent,维护好自己的Cookie池,维护好自己的代理IP池,添加恰当的Host和Referer,以让对方服务器觉得这一切看起来都跟真的一模一样,那么你的爬虫开发能力,已经入门了。

到此为止,这些知识还和 Python 没有半毛关系,但你知道了要干什么之后,再去搜 Python 相关的工具库,你就会发现原来 Requests 可以轻松构造一个包含自定义 payload 和 headers 的 post 请求;你就会发现原来 Scrapy 中可以使用TCP包注入来伪造IP,还能玩SYN FLOOD拒绝服务攻击(误)……

所以说,你要做的是爬虫进阶,再用 Python 去寻找一个快捷的实现途径,然后就会发现,还是 Python 大法好,不愧为黑客第一语言。

 

 

使用 Google 的 OCR 开源库 tesseract,对应的Python包是pytesser,如果只是做简单(没有数字重叠)的数字识别,那么仅需调用接口就能完成识别。

我这里有很多的爬虫到web的开发的资料,还有免费的课程学习,欢迎你的加入请加q群301056069

加载中
0
Altman
Altman

不错,比较全

0
shitalpig
shitalpig
这两个爬虫框架好用吗,想用。。
0
shitalpig
shitalpig
scrapy, pyspider太优秀,为何还反对学习
OSC_wZsrLM
OSC_wZsrLM
男科嗯呢
0
py庄稼汉
py庄稼汉
如果我点了按钮,触发表单提交。f12我怎么找到绑定事件的那一行代码。。虽然network可以直接看到,但是从代码看起来会更清楚值是怎么来的。对这个很感兴趣
FenG_Vnc
FenG_Vnc
只能通过他的JS写的查找
0
pseudo
pseudo

各种网络协议、抓包分析、加密解密算法、ssl/tls这些基本功呢

0
pseudo
pseudo

 问下由于全局锁问题,怎么实现多线程抓取?

pseudo
pseudo
回复 @铁扇公主1 : 就是并发发送网络请求
铁扇公主1
铁扇公主1
你是单纯的读取还是要做其他的操作之类的? 一般CPU都会提供原子操作,使用原子操作对全局变量的修改可以做到免锁。具体的原子操作指令以及汇编的写法就需要看CPU的手册了。
0
n
noogler67

tcp包伪造了ip头,那还能收到返回包吗

返回顶部
顶部