CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Аватара пользователя
campbell

CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

Возможно создать такой скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы в файл?
Аватара пользователя
campbell

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

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
'=============================================================================
Аватара пользователя
campbell

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

campbell, используйте сторонние средства для загрузки страницы, например,
Wget
(
Wget for Windows - GnuWin32
) или
cURL
(
cURL - Download
).



В рамках WSH или PoSH сие также решаемо.
Аватара пользователя
campbell

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

спасибо пошел разбираться, но чувствую еще вопросы будут..

И если возможно напишите вариант скрипта, который читал бы файл html как исходный код и орентируясь по паре назначенных переменных вытаскивал бы строки.

по примеру назначаешь переменную %A= "^" и он вытаскивает строчку

а вторую двойную переменную т.е начиная с .... и заканчивая

Заранее спасибо
Аватара пользователя
Iska

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение Iska »

ох вот я задачку выбрал (подумалось) Изображение

Iska в чем-то похоже, завтра сяду на работе плотненько покопаю,

А на самом деле идея казалась простенькой. Если вкратце я собрал разные скрипты с этого и других форумов (пинг серверов, проверка места на файл-хранилищах, дефрагментация и т.д.) и завязал все конечным скриптом обработки и переноса всех логов в один с отправкой на почту, и все бы хорошо)) Но дурная голова рукам, как известно....)) и решил а почему бы после всего не прикрутить к этому еще один скрипт который все это дело распихивал в заранее подготовленный html (и не выкладывал на ftp на закрытую страничку сайта)

Да еще и с других сайтов инфу нужную добирал

(хотя наверно это проще было бы на php сделать)

Вот теперь сижу мучаюсь за одно осваиваю язык.

Кстати хотел бы внести предложение: помимо помощи под конкретные задачки можно было бы завести топик просто для вопросов (глупых и не очень )) ) я бы регулярно пользовался, а то часто пытаясь разобрать скрипт упираешься в пару знаков и часами ищешь инфу, а зачем оно там стоит.
Аватара пользователя
campbell

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

ох вот я задачку выбрал (подумалось) Изображение

Iska в чем-то похоже, завтра сяду на работе плотненько покопаю,

А на самом деле идея казалась простенькой. Если вкратце я собрал разные скрипты с этого и других форумов (пинг серверов, проверка места на файл-хранилищах, дефрагментация и т.д.) и завязал все конечным скриптом обработки и переноса всех логов в один с отправкой на почту, и все бы хорошо)) Но дурная голова рукам, как известно....)) и решил а почему бы после всего не прикрутить к этому еще один скрипт который все это дело распихивал в заранее подготовленный html (и не выкладывал на ftp на закрытую страничку сайта)

Да еще и с других сайтов инфу нужную добирал

(хотя наверно это проще было бы на php сделать)

Вот теперь сижу мучаюсь за одно осваиваю язык.

Кстати хотел бы внести предложение: помимо помощи под конкретные задачки можно было бы завести топик просто для вопросов (глупых и не очень )) ) я бы регулярно пользовался, а то часто пытаясь разобрать скрипт упираешься в пару знаков и часами ищешь инфу, а зачем оно там стоит.
Аватара пользователя
campbell

Re: CMD/BAT - [решено] скрипт, который брал бы урл из переменной и сохралял исходный код веб страницы

Сообщение campbell »

Код:

Код: Выделить всё

@Echo Off 
if exist gismeteo.txt (del gismeteo.txt) 
wget.exe http://www.gismeteo.ru/ -F -O gismeteo.txt 
exit

вот так получаем html

нужен парсер строк

на примере GISMETEO:там в исходном коде есть такой кусочек



Код:

Код: Выделить всё

<h2>Погода за окном</h2> <div class="section"> 
<h3 class="typeC">Москва</h3> 
<div class="scity">
<a href="/catalog/russia/251/">Московская область</a> / 
<a href="/catalog/russia/">Россия</a></div> 
<dl class="cloudness">
 <dt class="png" title="Пасмурно" style="background-image: url(http://i.gismeteo.com/static/images/icons/new/d.sun.c4.png)"><br></dt> 
<dd>Пасмурно</dd> 
</dl> <div class="temp">-1°C</div>
 <div class="wicon barp" title="Давление">743<span class="unit">мм рт.ст.</span></div>
 <div class="wicon wind"><dl title="Ветер северо-восточный" class="wicon wind2"><dt>СВ</dt><dd>4<span class="unit">м/с</span></dd></dl></div> 
<div class="wicon hum" title="Влажность">68<span class="unit">%</span></div>

а и итоге нужно получить:

Москва

-1C

743 мм рт.ст

СВ 4 м/с

68%
Ответить

Вернуться в «Скриптовые языки администрирования Windows»