如何将会话中的所有 cookie 作为 txt 文件获取?
How to get all of the cookies dropped in a session as a txt file?
我正在从事一个数字艺术项目,该项目涉及从我访问的一组网站收集 cookie。我正在尝试编写一些代码来帮助我解决这个问题,但总的来说,我只是在寻找 easiest/fastest 方法来将一次访问中丢弃的 cookie 的所有内容收集到一个文本文件中以供重复使用稍后。
现在 - 我在 JavaScript 小书签中使用这个脚本,它用数组中的 cookie 内容替换我所在的页面(稍后我将这个数组放入 python 我写的脚本...).
下面是小书签的内容,但现在的问题是它只是 returns 来自单个域的 cookie 的内容。
例如 - 如果我在 NYTimes.com 主页上 运行 这个脚本,我会收到域丢弃的大约 48 个 cookie。但是如果我查看 Chrome,我会发现所有第 3 方跟踪脚本都有数百个 cookie。我如何收集它们?不只是 NYtimes.com 个?
这是我现在 运行 通过小书签获取的当前 JavaScript 代码:
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 中的数组中。我承认这是一个黑客。如果有人有更好的想法,我会洗耳恭听!
我会编写一个简单的小型 HTTP 代理。然后将浏览器设置为使用代理,并让它记录所有通过的 cookie。
这里有个写简单代理的问题,seriously simple python HTTP proxy?
这可能会让你开始。
您需要扩展它以读取 header 并提取 cookie,但这相对容易,如果您对 python 感到满意,您会发现已经完成大部分你想要的事情的图书馆。您可能还想记录相关 header,这样您就知道哪些 cookie 来自哪个页面请求,但您随后可以非常简单地记录和整个浏览 session。
我正在从事一个数字艺术项目,该项目涉及从我访问的一组网站收集 cookie。我正在尝试编写一些代码来帮助我解决这个问题,但总的来说,我只是在寻找 easiest/fastest 方法来将一次访问中丢弃的 cookie 的所有内容收集到一个文本文件中以供重复使用稍后。
现在 - 我在 JavaScript 小书签中使用这个脚本,它用数组中的 cookie 内容替换我所在的页面(稍后我将这个数组放入 python 我写的脚本...).
下面是小书签的内容,但现在的问题是它只是 returns 来自单个域的 cookie 的内容。
例如 - 如果我在 NYTimes.com 主页上 运行 这个脚本,我会收到域丢弃的大约 48 个 cookie。但是如果我查看 Chrome,我会发现所有第 3 方跟踪脚本都有数百个 cookie。我如何收集它们?不只是 NYtimes.com 个?
这是我现在 运行 通过小书签获取的当前 JavaScript 代码:
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 中的数组中。我承认这是一个黑客。如果有人有更好的想法,我会洗耳恭听!
我会编写一个简单的小型 HTTP 代理。然后将浏览器设置为使用代理,并让它记录所有通过的 cookie。
这里有个写简单代理的问题,seriously simple python HTTP proxy? 这可能会让你开始。
您需要扩展它以读取 header 并提取 cookie,但这相对容易,如果您对 python 感到满意,您会发现已经完成大部分你想要的事情的图书馆。您可能还想记录相关 header,这样您就知道哪些 cookie 来自哪个页面请求,但您随后可以非常简单地记录和整个浏览 session。