|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы |
|
CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы
|
Новый участник Сообщения: 15 |
Возможно создать такой скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы в файл?
|
|
Отправлено: 23:36, 13-11-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать campbell, я же Вас спрашивал… Пробуйте (WSH):
Option Explicit Dim strUrl Dim strOriginalCharset Dim objHTMLDocument Dim objHTMLHeaderElement Dim objHTMLElement Dim strCity Dim strDegree Dim strBar Dim strWind Dim strHum strUrl = "http://www.gismeteo.ru/city/daily/4368/" strOriginalCharset = "UTF-8" Set objHTMLDocument = GetDocumentFromURL(strUrl, strOriginalCharset) For Each objHTMLHeaderElement In objHTMLDocument.getElementsByTagName("h3") If objHTMLHeaderElement.className = "typeC" Then strCity = objHTMLHeaderElement.firstChild.nodeValue Set objHTMLElement = objHTMLHeaderElement.nextSibling.nextSibling.nextSibling strDegree = objHTMLElement.firstChild.nodeValue Set objHTMLElement = objHTMLElement.nextSibling strBar = objHTMLElement.title & " " & objHTMLElement.firstChild.nodeValue & " " & objHTMLElement.firstChild.nextSibling.firstChild.nodeValue Set objHTMLElement = objHTMLElement.nextSibling strWind = objHTMLElement.firstChild.title & " " & _ objHTMLElement.firstChild.firstChild.nextSibling.firstChild.nodeValue & " " & _ objHTMLElement.firstChild.firstChild.nextSibling.firstChild.nextSibling.firstChild.nodeValue Set objHTMLElement = objHTMLElement.nextSibling strHum = objHTMLElement.title & " " & objHTMLElement.firstChild.nodeValue & objHTMLElement.firstChild.nextSibling.firstChild.nodeValue WScript.Echo strCity WScript.Echo strDegree WScript.Echo strBar WScript.Echo strWind WScript.Echo strHum Exit For End If Next WScript.Quit 0 '============================================================================= '============================================================================= Function GetDocumentFromURL(strURL, strCharset) Const adModeReadWrite = 3 Const adTypeBinary = 1 Const adTypeText = 2 Dim objHTMLDocument Dim objHTMLBaseElement Dim arrHtmlText Dim strUrlDomain Dim strContent Set objHTMLDocument = WScript.CreateObject("HTMLFile") With WScript.CreateObject("VBScript.RegExp") .Pattern = "^(http://.*?/).*" strUrlDomain = .Execute(strUrl).Item(0).SubMatches(0) End With With WScript.CreateObject("MSXML2.XMLHTTP") .open "GET", strURL, False .send arrHtmlText = .responseBody End With With WScript.CreateObject("ADODB.Stream") .Mode = adModeReadWrite .Type = adTypeBinary .Open .Write arrHtmlText .Position = 0 .Type = adTypeText .Charset = strCharset strContent = Replace(.ReadText, "<head>", "<head><base href=""" & strUrlDomain & """>", 1, -1, vbTextCompare) With WScript.CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "(<script[^>]*)" objHTMLDocument.open objHTMLDocument.write .Replace(strContent, "<script type='text/plain'") objHTMLDocument.close End With End With Set GetDocumentFromURL = objHTMLDocument Set objHTMLDocument = Nothing End Function '============================================================================= |
Отправлено: 21:01, 17-11-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Так закопался в возможности bat/cmd что забыл посмотреть форум
Iska, огромное спасибо вот только для меня cmd еще в процессе познания а vbs и подавно, если можно вставьте комментарии, что за что отвечает. задание сайта и кодировки я разобрал, а вот как, в последствии, происходит обработка полученного исходного кода. и вывод происходит в окно, а как направить в файл |
Отправлено: 11:27, 18-11-2011 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать campbell, код достаточно сложен, если Вы не знаете самой технологии, так что сами по себе комментарии вряд ли помогут.
Если вкратце, то: 1. При помощи регулярного выражения выделяем из URL основной домен. 2. При помощи объекта «MSXML2.XMLHTTP» получаем исходный код страницы. 3. Посредством объекта «ADODB.Stream» конвертируем полученный массив байт в текст (поскольку «MSXML2.XMLHTTP» всегда получает содержимое в кодировке UTF-8 — дополнительно конвертируем в оригинальную кодировку; в данном случае сие необязательно, поскольку оригинал и так в UTF-8, но я оставил данный приём для демонстрации). 4. При помощи вставки тэга «BASE» корректируем относительные ссылки в документе. 5. Чтобы избежать исполнения скриптов — посредством регулярного выражения корректируем тип тэгов «SCRIPT». 6. Посредством DOM (Использование HTML DOM (Document Object Model) в скриптах на базе Windows Script Host) делаем разбор получившегося html-документа: а). Получаем коллекцию тэгов «H3». б). Ищем среди них тэг с классом «typeC». в). Далее опять же, посредством DOM, продвигаемся по дереву элементов, выделяем потребные нам элементы, получаем их значения. Цитата campbell:
А какова у Вас глобальная цель? |
|
Отправлено: 14:41, 18-11-2011 | #13 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата campbell:
![]() |
|
------- Отправлено: 05:43, 19-11-2011 | #14 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Nokia закрыла исходный код Symbian | OSZone News | Новости информационных технологий | 3 | 11-04-2011 11:56 | |
Broadcom открыла исходный код драйверов для своих Wi-Fi адаптеров | OSZone News | Новости информационных технологий | 0 | 12-09-2010 11:30 | |
Стоит ли Microsoft открыть исходный код Internet Explorer? | OSZone News | Новости и события Microsoft | 2 | 22-03-2010 18:28 | |
Подскажите код баннера верху страницы который юкоз использует | QUMATOZ | Вебмастеру | 4 | 30-09-2008 17:34 | |
* News * | исходный код новой версии Java | Greyman | Программирование и базы данных | 1 | 19-01-2005 19:36 |
|