如何将所有cookie作为txt文件放入会话中?

时间:2015-05-26 19:47:37

标签: javascript cookies

我正在从事数字艺术项目,该项目涉及从我访问的一组网站收集Cookie。我正在编写一些代码来帮助我解决这个问题,但总的来说,我只是在寻找最简单/最快捷的方法来收集在一次访问中丢弃的cookie的所有内容。 - 稍后使用。

现在 - 我在JavaScript书签中使用这个脚本,用一个数组中的cookie内容替换我所在的页面(我后来将这个数组放入一个python中脚本我写了......)。

小书签的内容如下所示,但问题是它只返回单个域中cookie的内容。

所以例如 - 如果我在NYTimes.com主页上运行这个脚本,我会得到大约48个被域名删除的cookie。但是,如果我查看Chrome,我会发现所有第三方跟踪脚本都有数百个Cookie。我如何收集所有这些?不只是NYtimes.com的那些?

这是我目前通过书签运行的当前JavaScript代码:

/logout

我从输出中删除了function get_cookies_array() { var cookies = { }; if (document.cookie && document.cookie != '') { var split = document.cookie.split(';'); for (var i = 0; i < split.length; i++) { var name_value = split[i].split("="); name_value[0] = name_value[0].replace(/^ /, ''); cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]); } } return cookies; } function quotationsanitize(cookie){ if(cookie.indexOf('"') === -1) { return cookie; } else{ alert("found a quotation!"); return encodeURIComponent(cookie); } } function sanitize(cookie){ if(cookie.indexOf(',') === -1) { return quotationsanitize(cookie); } else{ alert("found a comma!"); return quotationsanitize(encodeURIComponent(cookie)); } } function appendCookies(){ $("body").empty(); var cookies = get_cookies_array(); $("body").append("["); for(var name in cookies) { //$("body").append(name + " : " + cookies[name] + "<br />" ); var cookieinfo = sanitize(cookies[name]); $("body").append('"' + cookieinfo + '",<br />' ); } $("body").append("]"); } var js = document.createElement('script'); js.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"; document.head.appendChild(js); jqueryTimeout = window.setTimeout(appendCookies, 500); ",因为我通过复制和粘贴将这些数据放入Python中的数组中。我承认这是一个黑客攻击。如果有人有任何更好的想法我全都耳朵!

1 个答案:

答案 0 :(得分:1)

我会写一个简单的小HTTP代理。然后将浏览器设置为使用代理,并让它记录所有cookie。

这里有一个关于编写简单代理的问题,seriously simple python HTTP proxy? 这可能会让你开始。

你需要扩展它以读取标题,并提取cookie,但这相对容易,如果你对python感到满意,你会发现你已经完成大部分工作的库。你也想记录相关的标题,所以你知道哪个cookie来自哪个页面请求,但你可以非常简单地记录和整个浏览会话。