为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

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

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


查看完整回答
反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 1379 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信