我一直在尝试自动登录到一个网站和提取统计数据,但没有成功。登录有三个关键问题,其中两个我已经解决了(获取会话id和发送适当的cookies),而另一个我没有。一旦登录,该网站生成一个CSRF_令牌,然后在头中传递给所有其他POST和GET调用。在使用Fiddler时,我能够在按下login按钮后捕捉到以下事件:
POST https://admin.------.com/login.html HTTP/1.1
Host: admin.------.com
Connection: keep-alive
Content-Length: 115
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://admin.------.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://admin.------.com/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: ecc=GBTnR4965BGJJeXzH5CM9Abg; ece=GBTnR4965BGJJeXzH5CM9Abg; ecid=GBTnR4965BGJJeXzH5CM9Abg
ses=4c17c8999aa61c3472710273fe0ea864&loginname=------&password=------&lang=xu&login=Login+&csrf_token=empty-token
“ses”是在pageload页面的HTML中生成的会话id,我在运行页面内容through BeautifulSoup并与上面的帖子一起提交时能够提取它。紧接着,在我做其他事情之前,小提琴手也出现了以下内容:
^{pr2}$在查看此GET的原始响应时,页面的<head>
中有以下脚本:
建立var token
的第三行是我需要的csrfu令牌。问题是,当通过Python的请求库运行所有这些时,CSRF_令牌不会生成,相反,当我返回页面内容时,第三行代码是:
var token = '' || 'empty-token',
我有没有遗漏什么,或者有人能给我一些关于如何实现这一点的见解?在
目前没有回答
相关问题 更多 >
编程相关推荐