寒云
小狐狸
小狐狸
  • UID26794
  • 注册日期2008-10-25
  • 最后登录2017-02-04
  • 发帖数12
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4235回复:10

抓取网页中的文字的插件

楼主#
更多 发布于:2008-10-25 21:04
想找一个随意抓取网页中的文字,并自动另存为txt文件的插件
请朋友们告知
谢谢
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
1楼#
发布于:2008-10-25 21:04
用Easy Drag To Go
在地址栏输入about:config,新建一个值extensions.easydragtogo.custom.saveTextAs,内容输入以下代码
if(target == "text" && url){var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); fp.init(window, null, fp.modeSave); fp.defaultExtension = "txt"; fp.defaultString = url.substr(0, 20).replace(/[\\\/\*\|\?\n:"<>]/g, "-") + ".txt"; fp.appendFilters(fp.filterText); fp.appendFilters(fp.filterAll); if(fp.show() != fp.returnCancel){var conv = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter); conv.charset = 'UTF-8'; var text = conv.ConvertFromUnicode(url).replace(/\n/g, "\r\n"); var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); stream.init(fp.file, 0x02|0x20|0x08, 0666, 0); stream.write("\u00EF\u00BB\u00BF",3); stream.write(text, text.length); var fin = conv.Finish(); if(fin.length > 0) stream.write(fin, fin.length); stream.close();}}

然后进入easy drag to go的选项,将某个文本拖拽的动作定义为custom:saveTextAs
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
2楼#
发布于:2008-10-25 21:04
drag de go好像也可以
寒云
小狐狸
小狐狸
  • UID26794
  • 注册日期2008-10-25
  • 最后登录2017-02-04
  • 发帖数12
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-10-25 21:04
楼上的朋友太强了
谢谢
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
4楼#
发布于:2008-10-25 21:04
事实上那是Easy Drag To Go官方给出的自定义代码的例子^_^
saga2008
非常火狐
非常火狐
  • UID25840
  • 注册日期2008-08-15
  • 最后登录2024-07-10
  • 发帖数694
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 社区居民
5楼#
发布于:2008-10-25 21:04
嗯,web狼很厉害的说~
meidog
火狐狸
火狐狸
  • UID26768
  • 注册日期2008-10-23
  • 最后登录2012-02-12
  • 发帖数126
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2008-10-25 21:04
这段代码要怎样修改,才可以应用到keyconfig中?另外生成的txt文件位置是在哪里?
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
7楼#
发布于:2008-10-25 21:04
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
fp.init(window, null, fp.modeSave);
fp.defaultExtension = "txt";
var url=document.commandDispatcher.focusedWindow.getSelection().toString();
fp.defaultString = url.substr(0, 20).replace(/[\\\/\*\|\?\n:"<>]/g, "-") + ".txt";
fp.appendFilters(fp.filterText);
fp.appendFilters(fp.filterAll);
if(fp.show() != fp.returnCancel)
{
	var conv = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
	conv.charset = 'UTF-8';
	var text = conv.ConvertFromUnicode(url).replace(/\n/g, "\r\n");
	var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
	stream.init(fp.file, 0x02|0x20|0x08, 0666, 0);
	stream.write("\u00EF\u00BB\u00BF",3);
	stream.write(text, text.length);
	var fin = conv.Finish();
	if(fin.length > 0) 
		stream.write(fin, fin.length);
	stream.close();
}

改成这样就可以了
nettrotter
火狐狸
火狐狸
  • UID19393
  • 注册日期2007-06-12
  • 最后登录2014-04-26
  • 发帖数149
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
8楼#
发布于:2008-10-25 21:04
楼上的代码贴入keyconfig再重启,试验了一下没有用嘛。
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
9楼#
发布于:2008-10-25 21:04
我这儿工作挺正常的,呵呵,实际上只加了一句
var url=document.commandDispatcher.focusedWindow.getSelection().toString();
nettrotter
火狐狸
火狐狸
  • UID19393
  • 注册日期2007-06-12
  • 最后登录2014-04-26
  • 发帖数149
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
10楼#
发布于:2008-10-25 21:04
嘿,我这里怎么不行。怒了
游客

返回顶部