Van*_*nce 8 python curl pycurl
我需要下载受密码保护的页面上的文件.要手动访问该页面,我首先必须通过普通登录页面进行身份验证.我想用curl在脚本中获取这个页面.
我的脚本首先登录.它似乎成功 - 它从PUT返回200到/ login.但是,所需页面的获取失败,500.
我正在使用"饼干罐":
C.setopt(pycurl.COOKIEJAR, 'cookie.txt')
Run Code Online (Sandbox Code Playgroud)
在详细模式下,当我获取所需文件时,我可以看到cookie被交换.现在我的问题是:还有更多使用COOKIEJAR吗?
wds*_*wds 12
我相信Curl会存储cookie但你需要明确地使用它们.我虽然只使用过命令行界面.扫描文档我认为您可能想尝试:
C.setopt(pycurl.COOKIEFILE, 'cookie.txt')
Run Code Online (Sandbox Code Playgroud)
(在第二次请求之前)
小智 8
您应该首先存储cookie然后从中读取:
C.setopt(pycurl.COOKIEJAR, 'cookie.txt')
C.setopt(pycurl.COOKIEFILE, 'cookie.txt')
Run Code Online (Sandbox Code Playgroud)
curl --help返回了什么:
-b, --cookie STRING/FILE String or file to read cookies from (H)
-c, --cookie-jar FILE Write cookies to this file after operation (H)
Run Code Online (Sandbox Code Playgroud)
看这个样本:
def connect(self):
'''
Connect to NGNMS server
'''
host_url = self.ngnms_host + '/login'
c = pycurl.Curl()
c.setopt(c.URL, host_url)
c.setopt(pycurl.TIMEOUT, 10)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.POSTFIELDS, 'j_username={ngnms_user}&j_password={ngnms_password}'.format(**self.ngnms_login))
c.setopt(pycurl.COOKIEJAR, 'data/ngnms.cookie')
# c.setopt(c.VERBOSE, True)
c.setopt(pycurl.SSL_VERIFYPEER, 0);
session = c
return session
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17507 次 |
| 最近记录: |