首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Mechanize接受和发送cookie?

如何使用Mechanize接受和发送cookie?
EN

Stack Overflow用户
提问于 2012-08-28 00:42:53
回答 2查看 1.1K关注 0票数 1

我有一个bash脚本,它使用cookie登录并保存来自URL的文本文件。我需要在Python中使用Mechanize来实现同样的功能,但是我无法让它工作。只有两行废话,快把我逼疯了。我已经看了机械化文档,但找不到怎么做。

代码语言:javascript
复制
#!/bin/sh
base_url=https://myapp.url.com
sign_on_request="aK8Rj_mrVk3J-PDf9x6...LONG KEY...4ZPMd0w"
# Login
wget -q --keep-session-cookies --save-cookies savedcookie.txt --post-data="sign_on_request=$sign_on_request" -O - $base_url/login > /dev/null 2>&1
# Save CSV
wget -q --load-cookies savedcookie.txt -O output.txt $base_url/data

这是我尝试过的:

代码语言:javascript
复制
import mechanize
import cookielib

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Login
req = mechanize.Request("https://myapp.url.com/login", "sign_on_request=aK8Rj_mrVk3J-PDf9x6...LONG KEY...4ZPMd0w")
cj.add_cookie_header(req)
res = mechanize.urlopen(req)

# Download
f = br.retrieve('https://myapp.url.com/data')[0]
print f
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-28 00:51:20

你有没有试过用mechanize.Request代替res = br.open("https://myapp.url.com/login", data=...)?如果您希望浏览器能够进行检索,那么您似乎需要使用您创建的浏览器进行登录。

票数 1
EN

Stack Overflow用户

发布于 2013-02-13 13:50:36

你可以使用br.set_cookie("cookiename=cookievalue; expire=Wednesday, 13-Feb-13 15:00:00 GMT"),但是这个方法只有在你调用了某个网站之后才有效。使用相同的对象br调用更多的页面,以便在br.open()方法中自动发送此cookie。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12146041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档