python爬虫 - 爬虫:网站怎么知道是否有登陆

查看:397
本文介绍了python爬虫 - 爬虫:网站怎么知道是否有登陆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在提交表单之前,cookies有个session-id。
登陆完之后,cookies有个auth。
这个auth就用在后面获取一个token值,而该token值用在请求一个MAINFRAME.aspx上,而我想爬的这个B网页它就只带这session-id,Referer是A网页,而A网页Referer是这个MAINFRAME.aspx文件。我现在只能爬到A网页,而想爬的B网页提示我要登陆。我知道这肯定跟有没登陆肯定有联系(以为会直接带cookies就好了),但是竟然没用到,有人知道如何解决吗?

解决方案

怎么最近都是自问自答的。。。
scrapy的文档说得不是很清楚,起码误导了我这样的新人。
我就说这么流行的框架怎么需要自己来处理cookie呢?
两个需要注意的点:
1.有些登陆只需要你填用户名和密码,但你看包发现还要再添加其他的值对不对?因为这些值的类型是隐藏的,就像这样:<input type="hidden">所以你如果要找这些值的话就去网页源代码里找。
scrapy提供了这样一个函数来帮你填上那些隐藏的值

2.当你登陆成功后,不用再管cookies,你就已经是带着这个cookies来访问了。但是前提是函数要用对。
这个函数是不行的:scrapy.Request(),要用这个from scrapy.http import Request,然后再用Request()就可以了。根本不需要死扣request的headers。(应该有会更好,因为更像浏览器。)

这篇关于python爬虫 - 爬虫:网站怎么知道是否有登陆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆