python模拟登陆杂记
2014-10-17 22:07
204 查看
从一个菜,开始练习要弄懂这些还真是费了很大的力气啊! 网上这种登陆的代码真的是一大堆了,所以代码就免了,也没什么意思!
就说说那些高手不会说的东西,就像课本里面只讲结论,而不讲这些贤人怎么思考的过程。我认为结论固然重要,但是思考的过程也很重要!
首先,有http协议和cookie的一些知识也很必要,没有也没有很大关系!
要模拟登陆,就需要懂整个登录的过程,浏览器的开发者工具 就发挥作用了-->【手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程】
每次登录的时候,网站在没有输入密码的情况下,依然能够登录,这里的关键就是Cookie,cookie的作用及含义,请转角Google。python有很多工具automate handle cookie,方法请 ‘Google’
众所周知,百度的登陆是很简单的方式,基本没有加密就直接传送了,这真的好吗?
无论是百度还是微博登录过程中,在提交passwd及username之前,一定要获取其他的东西,百度的token,微博的servertime,nonce,rsakv,及微博wap端的rand,vk,passwd.
获取到这些以后,如果password and username is encrypted, 那么在网上找到相应的加密方式,后者直接取找相应的加密的JS,去看,然后模拟。
微博的过程是很令人恶心的,加密就算啦,还在登录之后还要折腾两次。【微博的wap端很简单,对于爬取数据是很好的】
最后说说,常用的封杀爬虫的手段,从网上学的,(本人就是伸手一族,不学习别人的长处,怎么能够实现文化的传承尼,呵呵):
1.查看user-Agent。补救,在headers中进行mask.,微博的就不行的哦,robots协议。
2.若抓取频率过高则认为是爬虫进行封杀。补救利用time库中sleep()进行暂停。
3.同一ip抓取短时间超过一定数目,则判定为爬虫进行封杀。补救使用大量的代理,这样很累,也可行度不高,还有人说用程序调用cmd命令重新不断刷新IP,好像可行性也不是很高,那就是放大招的时候了,使用socks代理,这样的代理,网站是检查不出来的哦!看到知乎上有人说,ADSL使用多地方的线路,然后切换IP,这个应该成本很大哦!当然更换IP是王道,但是之针对企业级别的哦!小人物吗,就time.sleep(),更改一下header,或者从网上搜一些免费的代理用就算了!X-Forwarded-For听说人家主要是用这个检测代理与否的,但是也已经有了能伪造的这个的哦,google一下就知道了!
4.听说使用,反向域名解析,如果ip来自那几大搜索引擎则不封杀,否则进行封杀。【这招挺狠】
爬虫的效率可利用提高dns解析速度,多线程,提高抓取效率!还有分析网页的速度也是很关键的东西,现成的方法中,主要都是一次性将网页导入内存,如果是线程并行,同时载入多个网页,这样很吃内存不说,如果超过一定的数目,则造成大量的内存交换,这样的损失在大量的工作上是很巨大的。这也是,尽可能的使用人工分析JS的逻辑进行模拟的原因了,加载那些JS模拟器,很费内存,但是这种在大量的类型的任务面前,工作量和消耗还是很容易权衡地。
还要多说一点,要开始学某项新技术,一定不要用百度,搜索结果真的很啃人,否则,回头发现google随便就能搜到,整个系列的文章,且质量保证。
参考:http://www.linuxde.net/2013/04/13308.html
http://www.jb51.net/article/46053.htm
就说说那些高手不会说的东西,就像课本里面只讲结论,而不讲这些贤人怎么思考的过程。我认为结论固然重要,但是思考的过程也很重要!
首先,有http协议和cookie的一些知识也很必要,没有也没有很大关系!
要模拟登陆,就需要懂整个登录的过程,浏览器的开发者工具 就发挥作用了-->【手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程】
每次登录的时候,网站在没有输入密码的情况下,依然能够登录,这里的关键就是Cookie,cookie的作用及含义,请转角Google。python有很多工具automate handle cookie,方法请 ‘Google’
众所周知,百度的登陆是很简单的方式,基本没有加密就直接传送了,这真的好吗?
无论是百度还是微博登录过程中,在提交passwd及username之前,一定要获取其他的东西,百度的token,微博的servertime,nonce,rsakv,及微博wap端的rand,vk,passwd.
获取到这些以后,如果password and username is encrypted, 那么在网上找到相应的加密方式,后者直接取找相应的加密的JS,去看,然后模拟。
微博的过程是很令人恶心的,加密就算啦,还在登录之后还要折腾两次。【微博的wap端很简单,对于爬取数据是很好的】
最后说说,常用的封杀爬虫的手段,从网上学的,(本人就是伸手一族,不学习别人的长处,怎么能够实现文化的传承尼,呵呵):
1.查看user-Agent。补救,在headers中进行mask.,微博的就不行的哦,robots协议。
2.若抓取频率过高则认为是爬虫进行封杀。补救利用time库中sleep()进行暂停。
3.同一ip抓取短时间超过一定数目,则判定为爬虫进行封杀。补救使用大量的代理,这样很累,也可行度不高,还有人说用程序调用cmd命令重新不断刷新IP,好像可行性也不是很高,那就是放大招的时候了,使用socks代理,这样的代理,网站是检查不出来的哦!看到知乎上有人说,ADSL使用多地方的线路,然后切换IP,这个应该成本很大哦!当然更换IP是王道,但是之针对企业级别的哦!小人物吗,就time.sleep(),更改一下header,或者从网上搜一些免费的代理用就算了!X-Forwarded-For听说人家主要是用这个检测代理与否的,但是也已经有了能伪造的这个的哦,google一下就知道了!
4.听说使用,反向域名解析,如果ip来自那几大搜索引擎则不封杀,否则进行封杀。【这招挺狠】
爬虫的效率可利用提高dns解析速度,多线程,提高抓取效率!还有分析网页的速度也是很关键的东西,现成的方法中,主要都是一次性将网页导入内存,如果是线程并行,同时载入多个网页,这样很吃内存不说,如果超过一定的数目,则造成大量的内存交换,这样的损失在大量的工作上是很巨大的。这也是,尽可能的使用人工分析JS的逻辑进行模拟的原因了,加载那些JS模拟器,很费内存,但是这种在大量的类型的任务面前,工作量和消耗还是很容易权衡地。
还要多说一点,要开始学某项新技术,一定不要用百度,搜索结果真的很啃人,否则,回头发现google随便就能搜到,整个系列的文章,且质量保证。
参考:http://www.linuxde.net/2013/04/13308.html
http://www.jb51.net/article/46053.htm
相关文章推荐
- python模拟登陆163邮箱并获取通讯录
- Python模拟登陆新浪微博并实现投票功能
- 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
- python模拟新浪微博登陆功能(新浪微博爬虫)
- Python模拟登陆新浪微博
- 网站模拟登陆备忘(php + python)
- python3.3教程之模拟百度登陆代码分享
- 模拟登陆百度 python
- 使用python模拟cookie登陆wooyun
- python 淘宝系列(二):处理验证码的模拟登陆
- Python模拟登陆163邮箱并获取通讯:
- 返回密码[Python]小练习 -- 模拟登陆人人网
- 返回密码[Python]小练习 -- 模拟登陆人人网返回密码
- python 采用代理模拟登陆代码
- python模拟登陆网站抓取数据
- python模拟163登陆获取邮件列表
- [Python]小练习 -- 模拟登陆人人网
- (转)Python-详解抓取网站,模拟登陆,抓取动态网页的原理和实现
- python 模拟登陆园子
- python模拟登陆Tom邮箱示例分享