<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: исследование веб-сайтов с помощью компонента Chilkat Spider]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2878&amp;type=atom" />
	<updated>2009-03-03T20:06:20Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2878</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: исследование веб-сайтов с помощью компонента Chilkat Spider]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20234#p20234" />
			<content type="html"><![CDATA[<p>Получение заголовка, описания, ключевых слов найденной страницы, получение содержимого robots.txt, а также демонстрация некоторых полезных вспомогательных методов объекта:<br /></p><div class="codebox"><pre><code>Set oSpider = CreateObject(&quot;Chilkat.Spider&quot;)
oSpider.Initialize &quot;elevel.ru&quot;
oSpider.AddUnspidered &quot;http://www.elevel.ru/&quot;
suc = oSpider.CrawlNext()
WScript.Echo oSpider.LastUrl
WScript.Echo oSpider.GetDomain(oSpider.LastUrl) &#039; получение домена из URL
WScript.Echo oSpider.GetBaseDomain(oSpider.GetDomain(oSpider.LastUrl)) &#039; получение корневого домена
WScript.Echo &quot;title:&quot;
WScript.Echo oSpider.LastHtmlTitle &#039; заголовок страницы
WScript.Echo &quot;description:&quot;
WScript.Echo oSpider.LastHtmlDescription &#039; description страницы
WScript.Echo &quot;keywords:&quot;
WScript.Echo oSpider.LastHtmlKeywords &#039; keywords страницы
WScript.Echo
WScript.Echo oSpider.FetchRobotsText &#039; содержимое robots.txt
WScript.Echo
&#039; пример получения &quot;canonicalized&quot; URL для исключения дубликатов при сложных обходах:
WScript.Echo oSpider.CanonicalizeUrl _
    (&quot;http://username:password@www.chilkatsoft.com/purchase2.asp#buyZip&quot;)</code></pre></div><p>Пример задания исключающих шаблонов URL:<br /></p><div class="codebox"><pre><code>Set oSpider = CreateObject(&quot;Chilkat.Spider&quot;)
oSpider.Initialize &quot;elevel.ru&quot;
oSpider.AddUnspidered &quot;http://www.elevel.ru&quot;
&#039; исключить URL по маске:
oSpider.AddAvoidPattern &quot;*iNavId*&quot;
oSpider.AddAvoidPattern &quot;*iContentId*&quot;
&#039; см. также метод AddAvoidOutboundLinkPattern в документации
Do While True
    success = oSpider.CrawlNext()
    If success = 1 Then
        WScript.Echo oSpider.LastUrl &amp; &quot; (осталось URL - &quot; &amp; oSpider.NumUnspidered &amp; &quot;)&quot;
    Else
        If oSpider.NumUnspidered = 0 Then &#039; количество необойдённых URL
            WScript.Echo &quot;Обход завершён.&quot;
        Else
            WScript.Echo spider.LastErrorText &#039; последняя произошедшая ошибка
        End If
        Exit Do
    End If
    oSpider.SleepMs 1000 &#039; пауза в миллисекундах
Loop</code></pre></div><p>Пример использования кеша:<br /></p><div class="codebox"><pre><code>Set oSpider = CreateObject(&quot;Chilkat.Spider&quot;)
oSpider.CacheDir = &quot;c:/temp/_cache&quot; &#039; каталог будет создан, если не существует
oSpider.FetchFromCache = 1 &#039; извлекать страницы из кеша, если возможно
oSpider.UpdateCache = 1 &#039; пополнять кеш
oSpider.Initialize &quot;www.chilkatsoft.com&quot;
oSpider.AddUnspidered &quot;http://www.chilkatsoft.com/&quot;
Do While True
    success = oSpider.CrawlNext()
    If success = 1 Then
        WScript.Echo oSpider.LastUrl &amp; &quot; (осталось URL - &quot; &amp; oSpider.NumUnspidered &amp; &quot;)&quot;
    Else
        If oSpider.NumUnspidered = 0 Then 
            WScript.Echo &quot;Обход завершён.&quot;
        Else
            WScript.Echo spider.LastErrorText
        End If
        Exit Do
    End If
    If oSpider.LastFromCache &lt;&gt; 1 Then
        &#039; пауза нужна, только если страница была извлечена НЕ из кеша:
        oSpider.SleepMs 1000
    End If
Loop</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-03-03T20:06:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20234#p20234</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: исследование веб-сайтов с помощью компонента Chilkat Spider]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20233#p20233" />
			<content type="html"><![CDATA[<p>Бесплатный COM-сервер <a href="http://www.chilkatsoft.com/SpiderActiveX.asp">Chilkat Spider</a> предоставляет функционал для исследования веб-сайтов. Дистрибутив (msi-инсталлятор) имеет размер около 1 Мб. Документацию можно найти <a href="http://www.chilkatsoft.com/refdoc/xSpiderRef.html">здесь</a>. Примеры можно найти <a href="http://www.example-code.com/vbscript/spider.asp">здесь</a>.</p><p>Возможности:<br />* Обход веб-сайта с учётом Robots.txt;<br />* Сбор внешних ссылок;<br />* Кеширование страниц для будущих обходов;<br />* Получение мета-информации страниц;<br />* Поддержка HTTPS;<br />* Исключение URL по указанным шаблонам;<br />* Исключение внешних ссылок по указанным шаблонам;<br />* Возможность задания тайм-аутов, счётчика и лимита страниц;<br />* Задание максимального размера URL для избежания зацикливания;<br />* Задание максимального размера страницы;</p><p>Простейший пример обхода. Скрипт обходит и выводит в консоль все URL, отвечающие шаблону *.htm*, начиная со страницы forum.script-coding.com/rules.html, в пределах домена script-coding.com. Найденные внешние ссылки, соответствующие тому же шаблону, также выводятся:<br /></p><div class="codebox"><pre><code>Set oSpider = CreateObject(&quot;Chilkat.Spider&quot;)
&#039; инициализация; сброс настроек, сделанных методами
&#039; AddAvoidOutboundLinkPattern, AddAvoidPattern и AddMustMatchPattern,
&#039; если такие настройки были, и установка свойства Domain:
oSpider.Initialize &quot;script-coding.com&quot;
WScript.Echo &quot;Домен: &quot; &amp; oSpider.Domain
&#039; отправная точка исследования (фактически - добавление URL для обхода):
oSpider.AddUnspidered &quot;http://forum.script-coding.com/rules.html&quot;
&#039; ограничивающий шаблон (действует и на внешние ссылки):
oSpider.AddMustMatchPattern &quot;*.htm*&quot;
Do While True
    &#039; получить очередной URL и пополнить внутренний список ссылок для обхода:
    success = oSpider.CrawlNext()
    If success = 1 Then
        &#039; очередной найденный URL:
        WScript.Echo oSpider.LastUrl &amp; &quot; (осталось URL - &quot; &amp; oSpider.NumUnspidered &amp; &quot;)&quot;
    Else
        If oSpider.NumUnspidered = 0 Then &#039; количество необойдённых URL
            WScript.Echo &quot;Обход завершён.&quot;
        Else
            WScript.Echo spider.LastErrorText &#039; последняя произошедшая ошибка
        End If
        Exit Do
    End If
    oSpider.SleepMs 1000 &#039; пауза в миллисекундах
Loop
WScript.Echo &quot;Внешние ссылки:&quot;
For i = 0 To oSpider.NumOutboundLinks - 1
    Wscript.Echo oSpider.GetOutboundLink(i)
Next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-03-03T20:02:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20233#p20233</id>
		</entry>
</feed>
