我们在访问一个网页前,要先进行登陆的操作,虽然可以选择选择下次自动登录的选项。有没有小伙伴们想过,直接进入网站页面不就行了吗,为什么还要进行登录这项重复的操作呢?这是网站的一个反爬虫措施,防止短时间内大量爬虫的获取数据。当然有时候我们也需要采集一些数据,这就需要用到cookie。下面我们一起看看Cookie的简单介绍和它响应网页的方法。
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。
从响应中获取cookie
我们就可以先访问该站的某个页,建立了session连接之后,获取cookie,再伪造头进行访问。
>>> from bs4Test import * >>> s = requests.session() >>> s.get("https://www.gebiz.gov.sg/ptn/opportunity/BOListing.xhtml?origin=menu") >>> print(s.cookies) # 下面是打印结果 , http://www.gebiz.gov.sg/>, http://www.gebiz.gov.sg/>]>
最后拼接cookie串
cook_value = '' for x in cook: cook_value += x.name + '=' + x.value + ';' cook_value = cook_value[:len(cook_value)-1] print(cook_value) #打印结果 __cfduid=d9ed16845e45ce7496268e8b2293dadc81456745242;BIGipServerPTN2_PRD_Pool=18964640.47873.0000;wlsessionid=nUIsyGBSLqjakq4P5dEDh4TNUJBYtw4nIpxkyITzrj2A5CalOWZ9!-936114045
学完本篇文章我们可以知道,cookie可以保存我们之前的登录信息,在获取数据方面就不需要再反复的登录啦,是不是很方便和实用呢~
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试