<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JScript: Пример сохранения web-страницы в TXT, HTML и MHT (веб-архив)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=871&amp;type=atom" />
	<updated>2007-11-22T06:11:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=871</id>
		<entry>
			<title type="html"><![CDATA[JScript: Пример сохранения web-страницы в TXT, HTML и MHT (веб-архив)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=6245#p6245" />
			<content type="html"><![CDATA[<p>Скрипт загружает страницу из интернета и сохраняет ее в трех форматах:<br />1. текстовом - аналогично сохранению файла в IE с типом файла &quot;Текстовый файл (*.txt)&quot;<br />2. исходный код страницы<br />3. веб-архив MHT.</p><p>Одна тонкость - MHT формируется библиотекой CDO с ошибкой - когда в веб-архив внедрен внешний CSS файл (&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;file.css&quot; /&gt;), то ссылку на него библиотека указывает неверно, вследствие чего страница из mht отображается без стиля из этого файла. Если же css-таблица вписана в сам html-исходник с помощью тега &lt;style&gt;, то тогда все отображается верно.</p><div class="codebox"><pre><code>// идея взята с RSDN, автор Alexey Goncharov
// переработка моя
var wsh = new ActiveXObject(&quot;WScript.Shell&quot;);
var Message = new ActiveXObject( &quot;CDO.Message&quot; ) ;
var Config  = new ActiveXObject( &quot;CDO.Configuration&quot; ) ;

var cdoSuppressNone        = 0;  // загружать все
var cdoSuppressImages      = 1;  // не загружать картинки
var cdoSuppressBGSounds    = 2;  // не загружать фоновые звуки
var cdoSuppressFrames      = 4;  // не загружать фреймы
var cdoSuppressObjects     = 8;  // не загружать объекты
var cdoSuppressStyleSheets = 16; // не загружать таблицы стилей
var cdoSuppressAll         = 31; // не загружать ничего из вышеперечисленного

var Flag = cdoSuppressNone;
var UserName = &#039;&#039;;
var Password = &#039;&#039;;

Message.Configuration = Config;
Message.AutoGenerateTextBody = true;

Message.CreateMHTMLBody( &quot;http://www.yandex.ru&quot;, Flag) ;

// сохранить страницу как txt
var Stream = Message.TextBodyPart.GetEncodedContentStream(); // поток по умолчанию в юникоде
Stream.Charset = &#039;ascii&#039;;  // что ни ставь все равно перекодируется в системную по умолчанию кодировку
Stream.SaveToFile( &quot;Page.txt&quot;, 2 );

// сохранить страницу как html
var Stream = Message.HTMLBodyPart.GetEncodedContentStream(); // поток по умолчанию в юникоде
Stream.Charset = &#039;ascii&#039;;  // что ни ставь все равно перекодируется в системную по умолчанию кодировку
Stream.SaveToFile( &quot;Page.htm&quot;, 2 );

// сохранить страницу как веб-архив .MHT
var Stream = Message.BodyPart.GetStream();
Stream.SaveToFile( &quot;Page.mht&quot;, 2 );</code></pre></div>]]></content>
			<author>
				<name><![CDATA[delpher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=6992</uri>
			</author>
			<updated>2007-11-22T06:11:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=6245#p6245</id>
		</entry>
</feed>
