您的位置:首页 > 新闻资讯 >文章内容
代理IP教程:爬虫免登录如何实现?
来源:互联网 作者:admin 时间:2019-10-02 10:35:00

  互联网时代,数据获取的手段有很多,通过代理IP去开展的爬虫是其中的一种。当我们通过爬虫去访问目标网站,代理IP提供IP地址的切换,保障工作进程能够持续,这是数据获得的流程。网站爬虫实现免登录,我们一般是通过cookie跟session来进行。


代理IP教程:爬虫免登录如何实现


  一、Cookie的机制


  Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。


  Cookie的Domain和Path属性标识了这个Cookie是哪一个网站发送给浏览器的;Cookie的Expires属性标识了Cookie的有 效时间,当Cookie的有效时间过了之后,这些数据就被自动删除了。


  如果不设置过期时间,则表示这个Cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,Cookie就消失了。这种生命期为浏览会话期的 Cookie被称为会话Cookie。会话Cookie一般不保存在硬盘上而是保存在内存里。如果设置了过期时间,浏览器就会把Cookie保存到硬盘 上,关闭后再次打开浏览器,这些Cookie依然有效直到超过设定的过期时间。存储在硬盘上的Cookie可以在不同的浏览器进程间共享,比如两个IE窗 口。而对于保存在内存的Cookie,不同的浏览器有不同的处理方式。


  二、Session的机制


  Session是存放在服务器端的类似于HashTable结构(每一种Web开发技术的实现可能不一样,下文直接称之为HashTable)来存放用户 数据,当浏览器第一次发送请求时,服务器自动生成了一个HashTable和一个Session ID用来唯一标识这个HashTable,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。


  一般情况下,服务器会在一定时间内(默认20分钟)保存这个HashTable,过了时间限制,就会销毁这个HashTable。在销毁之前,程序员可以 将用户的一些数据以Key和Value的形式暂时存放在这个HashTable中。当然,也有使用数据库将这个HashTable序列化后保存起来的,这 样的好处是没了时间的限制,坏处是随着时间的增加,这个数据库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。


  三、实现“记住我的登录状态”的功能


  如果我们将Session ID通过Cookie发送到客户端的时候设置其过期时间为1年,那么在今后的一年时间内,客户端访问我的网站的时候都回将这个Session ID值发送到服务器上,服务器根据这个Session ID从内存或者数据库里面恢复存放Key-Value对的Hashtable。


  其实这已经很好的实现了我们的功能了。但是,实际上Session并不会一直都存在的,过了一定的时间之后,服务器上的Session就被 销毁了,以减轻服务器的访问压力。当服务器上的数据被销毁后,即使客户端上存放了Cookie也没有办法“记住我的登录状态”了。


  通用的实现办法是,将用户的用户名和加密之后的密码也通过Cookie的方式存放在客户端,当服务器上的Session销毁以后,使用Cookie里面存 放的用户名和加密之后的密码重新执行一次登录操作,重建Session,并更新客户端上Cookie中存放的的Session ID,而这个操作是发生在用户请求一个需要身份验证的页面资源的背后,对于用户来讲是透明的,于是就达到了“记住我的登录状态”的目的了。


  四、Session的客户端实现形式(即Session ID的保存方法)


  一般浏览器提供了两种方式来保存,还有一种是程序员使用HTML隐藏域的方式自定义实现:


  1、使用Cookie来保存,这是最常见的方法,本文“记住我的登录状态”功能的实现正式基于这种方式的。服务器通过设置Cookie的方式将Session ID发送到浏览器。如果我们不设置这个过期时间,那么这个Cookie将不存放在硬盘上,当浏览器关闭的时候,Cookie就消失了,这个Session ID就丢失了。如果我们设置这个时间为若干天之后,那么这个Cookie会保存在客户端硬盘中,即使浏览器关闭,这个值仍然存在,下次访问相应网站时,同样会发送到服务器上。


  2、使用URL附加信息的方式,也就是像我们经常看到JSP网站会有aaa.jsp?JSESSIONID=*一样的。这种方式和第一种方式里面不设置 Cookie过期时间是一样的。


  3、第三种方式是在页面表单里面增加隐藏域,这种方式实际上和第二种方式一样,只不过前者通过GET方式发送数据,后者使用POST方式发送数据。但是明显后者比较麻烦。


  通过这两种方式我们就能够实现免登录访问网站。


相关文章内容简介
推荐阅读
  • 05 2020-08
    那么如何维护代理IP池呢

    互联网行业发展机灵,很多平台诞生了,同时也出现了很多作家,写手。但是要想成为一个有名气的作家是很难的,尤其是前期,可能写的文章发表出来都没有人看。我们知道,有些网站的文章

  • 11 2019-11
    使用代理IP上网与普通上网的不同

    网络现在已经非常普遍了,上网已经是大家日常生活中见怪不怪的一件平常事了。不过你知道我们与网络的沟通是如何实现的吗?如果是用了代理IP,与网络沟通的传输方式是否会有不同呢?

  • 02 2019-04
    选择动态IP代理,对比哪些方面容易看到实际效果?

    网站有所发展之后,肯定是不断的完善,如果你还想任意采集,这是不可能的。网站发展越好,用户就越多,虽然服务器配置也跟上,但是如果大量的爬虫过来,服务器也耗不起啊。为此,网站

  • 04 2020-02
    代理IP是爬虫中必不可少的

    我们在爬虫的时候,经常会出现爬虫正常运行,也在正常抓取数据,但可能下一秒就出现错误。这时候如果再打开网页查看,可能就会出现IP访问频繁的提示。出现这种情况,就是网站采取了反

  • 11 2019-04
    一个免费的异步爬虫代理池如何搭建?

    一个免费的异步爬虫代理池如何搭建?技术进步,自然各种网站也会加强自身的防御,现在爬虫如此多,不防着点,容易出问题。因此,换IP访问网站是目前大家都比较常用的突破反爬虫的方法

  • 03 2020-02
    不同的代理ip有什么区别

    代理IP的种类划分有很多,可以按照成本、匿名程度、用途来进行区分。不同的区分又有什么不同呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部