我遇到一个网站集群,跟公园一样,首先要登录主网页,然后访问其他子网站,还要进行二次登录(当然,不需要再输入账号密码,就看我有没有主网页的凭证):
我想拿到某个子网站的cookie
有两个方法:
第一,我通过浏览器访问,然后我就拿到了cookie
第二,也就是我现在做的,我想通过代码拿到cookie。
1.首先进去子网站的首页,马上给我一个cookie,然后302重定向,此时cookie应该是无效的。
2.然后【???我估计是拿着给我的无效cookie,以及我的证书/登录凭证,生成一段加密字符串,去那个重定向的网站做验证) ---- 这是我根据fiddler拿到的数据猜出来的。
3.验证我的证书有效以后,他会让我的cookie从无效变成有效,然后重定向回去我想访问的子网站首页。
如此:我便可以拿着生效的cookie尽情在子网站冲浪了
插曲:这个cookie还是被http-only过的,我也是通过fiddler才拿得到。
问题:我不想用selenium这种模拟工具登录(因为不是每个电脑都有装selenium),想靠跑程序的方式拿到有效的cookie。
对策1:
我目前想到的是写fiddler脚本,我手动访问后fiddler拿到有效的cookie以后写入到文件里。然后我的程序自己要使用的时候自己去取。
—但此种方法还是不够自动,还是不够纯代码化,也需要每个电脑都装fiddler。
有没有纯python的思路来实现呢?
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
了解课程