requests的回话session和模拟登陆爬取成绩页面
s = requests.session()
s.post()
一旦登录成功,会话对象s就包含登录成功后的cookie,有一点需要注意,当页面是层层跌套时,用会话对象s不要跳过其中的每一层链接,否则会话s就不能继续访问深层的链接,因为没访问一层链接,s就会自动更新cookie,
比如我爬取自己的成绩时,我首先使用s.pos成功登录的系统。但是现实成绩的表单在‘’研究生系统‘’这个模块下,必须点击这个模块进入后才能现实出成绩的页面,如果,我们直接拿现实成绩的页面url来爬,那么s是爬取不到的,因为会话对象s的cookie少了‘’研究生系统‘这一栏,我们必须首先s.get(‘研究生系统url’)’此时s的回话cookie得到了更新,然后拿s再去访问成绩页面才可以爬取的到s.get('成绩url')
同样的道理使用urllib2的自定义opener.open()在访问的时候,不要跳过层层跌套的任何一层url,都写cookie不能得到更新,深层的页面就不会被爬取到,必须一步一步的层层访问,几遍其中有些层次url代表的页面,我们并不需要爬取,或者并没有包含我们需要爬取的内容,但是不能跳过
s.post()
一旦登录成功,会话对象s就包含登录成功后的cookie,有一点需要注意,当页面是层层跌套时,用会话对象s不要跳过其中的每一层链接,否则会话s就不能继续访问深层的链接,因为没访问一层链接,s就会自动更新cookie,
比如我爬取自己的成绩时,我首先使用s.pos成功登录的系统。但是现实成绩的表单在‘’研究生系统‘’这个模块下,必须点击这个模块进入后才能现实出成绩的页面,如果,我们直接拿现实成绩的页面url来爬,那么s是爬取不到的,因为会话对象s的cookie少了‘’研究生系统‘这一栏,我们必须首先s.get(‘研究生系统url’)’此时s的回话cookie得到了更新,然后拿s再去访问成绩页面才可以爬取的到s.get('成绩url')
同样的道理使用urllib2的自定义opener.open()在访问的时候,不要跳过层层跌套的任何一层url,都写cookie不能得到更新,深层的页面就不会被爬取到,必须一步一步的层层访问,几遍其中有些层次url代表的页面,我们并不需要爬取,或者并没有包含我们需要爬取的内容,但是不能跳过