Сохранение в файл с использованием JavaScript / GreaseMonkey - PullRequest
8 голосов
/ 18 июня 2011

Я собрал список данных со страницы, используя Greasemonkey.

GM Script

var hit = GM_getValue("hit") || 0;
var _url = "http://localhost:8080/test?p=$$pageNo$$";
_url = _url.replace("$$pageNo$$", hit);
GM_setValue("hit", ++hit); 
if(hit <= 100) {
window.location.href = _url;
}

Этот сценарий будет запущен в n-й раз и захватит данные <10K, теперь я столкнулся с проблемойв сохранении захваченных данных в каком-то файле.Кто-нибудь имеет представление о том, как мы можем сохранить захваченные данные в файл / репо? </p>

Спасибо - Viswanathan G

Ответы [ 2 ]

11 голосов
/ 18 июня 2011

Нет, не могу записать его в файл, но если вам действительно скучно, вы можете опубликовать его на http://pastebin.com (или любом другом URL, который принимает запрос POST с кучей данных).

GM_xmlhttpRequest({
  method: "POST",
  url: "http://pastebin.com/post.php",
  data: <your data here>,
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  onload: function(response) {
    alert("posted");
  }
});

Обратите внимание, что для использования API необходима учетная запись pastebin.


Если вам действительно необходимо записать файл в локальную файловую систему, запустите веб-сервер на рабочем столе и сохраните результаты запроса HTTP PUT на диск.

7 голосов
/ 16 января 2016

Очень быстрое и простое решение - использовать FileSaver.js :
1) Добавьте следующую строку в раздел == UserScript == вашего скрипта Greasemonkey

// @require     https://raw.githubusercontent.com/eligrey/FileSaver.js/master/FileSaver.js

2) Добавьте 2 следующие строки кода в скрипт GM

var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});

saveAs(blob, "hello world.txt");


В этом примере кода отобразится диалоговое окно для загрузки файла с именем «hello world.txt», содержащего текст «Hello, world!». Просто замените его на имя файла и текстовое содержимое по вашему выбору!

...