python模拟登陆杂记

从一个菜,开始练习要弄懂这些还真是费了很大的力气啊! 网上这种登陆的代码真的是一大堆了,所以代码就免了,也没什么意思!

      就说说那些高手不会说的东西,就像课本里面只讲结论,而不讲这些贤人怎么思考的过程。我认为结论固然重要,但是思考的过程也很重要!

      首先,有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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值