我的意图是使用Python脚本登录网站并访问受保护的图像。我已经在浏览器中获得了合法且正常的访问权限。
以下是我目前拥有的内容:
import requests
s = requests.Session()
s.get('*domain*')
r_login =s.post('*domain*/user.php', headers={'cmd': 'login', 'loginname': '***', 'password': '***' })
print (s.cookies)
print (r_login.status_code)
r_img = s.get('*domain*/*protectedimage*.jpg')
print (r_img.status_code)
print (r.cookies)
print (s.cookies['PHPSESSID'])
输出:
<<class 'requests.cookies.RequestsCookieJar'>[<Cookie PHPSESSID=664b0842085b847a04d415a22e013ad8 for *domain*/>]>
200
403
<<class 'requests.cookies.RequestsCookieJar'>[]>
664b0842085b847a04d415a22e013ad8
我确信我能够成功登录,因为我曾经在登录后下载了html文件,而且它是以已登录的形式存在的。但问题是似乎我的PHPSESSID
cookie没有传递,所以我收到了一个403
错误。但我明确地知道它在我的会话中。我也尝试将cookie手动添加到我的"r_img"
行中,但没有任何区别,我仍然得到一个空的CookieJar
和一个403
错误。只使用请求模块是否可能实现这一点?我有没有忽略什么?请原谅我对HTTP
请求不太熟悉。
为了清晰起见,我正在使用Python 3.4。