Любой язык - Ввод данных в код

Ответить
Аватара пользователя
binwatch@vk

Любой язык - Ввод данных в код

Сообщение binwatch@vk »

Есть код vbs :



Код:

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

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") 
'подключение 
oXMLHTTP.Open "GET", "http://sait.ru/index.html", 0
 'получение файла 
oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream") 
oADOStream.Mode = 3 'разрешение на чтение и запись 
oADOStream.Type = 1 'тип данных - Binary 
oADOStream.Open oADOStream.Write oXMLHTTP.responseBody
 'сохранение (с перезаписью файла при необходимости) 
oADOStream.SaveToFile "C:\Users\Admin\Desktop\1.html", 2
 'сохранение файла в прописанной папке

Он скачивает страницу сайта и сохраняет в прописанном месте.

Можно ли создать такой скрипт, чтобы адрес сайта в данном коде можно было прописывать из диалогового окна bat ? или vbs?

Заранее благодарен)
Аватара пользователя
Iska

Re: Любой язык - Ввод данных в код

Сообщение Iska »

Цитата binwatch@vk:



Можно ли создать такой скрипт, чтобы адрес сайта в данном коде можно было прописывать из диалогового окна bat ? или vbs?
Любой язык - Ввод данных в код




Можно.


читать дальше »




Код:

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

strURL = Trim(InputBox("Input URL:"))
If Len(strURL)  0 Then
	Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") 
	'подключение 
	oXMLHTTP.Open "GET", strURL, 0
	 'получение файла 
	oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream") 
	oADOStream.Mode = 3 'разрешение на чтение и запись 
	oADOStream.Type = 1 'тип данных - Binary 
	oADOStream.Open oADOStream.Write oXMLHTTP.responseBody
	 'сохранение (с перезаписью файла при необходимости) 
	oADOStream.SaveToFile "C:\Users\Admin\Desktop\1.html", 2
	 'сохранение файла в прописанной папке
End If





А можно и указывать параметром скрипта. Откуда будут браться адреса страниц — буквально?
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

Адрес страницы будет можно или вручную вводить через окно ввода или в отдельный файл прописывать,без разницы. Напишите тот вариант который проще)
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

binwatch@vk, Вы меня не поняли. Я не спрашивал куда вводить адрес. Я спрашивал — откуда он берётся? Вот Вы откуда берёте эти адреса страниц? Опишите буквально.




Цитата binwatch@vk:



или вручную вводить через окно ввода
Любой язык - Ввод данных в код




Этот вариант я уже
Любой язык - Ввод данных в код
к Вашему коду.
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

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

Извиняюсь за создавшуюся путаницу)

Заранее благодарен.
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

Могу. Сколько там будет URL?
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

Для одного url можете написать?
Аватара пользователя
binwatch@vk

Re: Любой язык - Ввод данных в код

Сообщение binwatch@vk »

Пробуйте:


читать дальше »

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

Option Explicit
Dim strURLFile
If WScript.Arguments.Count = 1 Then
	strURLFile = WScript.Arguments.Item(0)
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strURLFile) Then
			With .OpenTextFile(strURLFile)
				Do Until .AtEndOfStream
					GetContentFromURLAndSaveToFile Trim(.ReadLine())
				Loop
				.Close
			End With
		Else
			WScript.Echo "File [" & strURLFile & "] not found"
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage: wscript.exe " & WScript.ScriptName & " <URL's file>"
	WScript.Quit 1
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub GetContentFromURLAndSaveToFile(strURL)
	Const adTypeBinary          = 1
	Const adModeReadWrite       = 3
	Const adSaveCreateOverWrite = 2
	Dim arrContent
	Dim strFileName
	Dim strChar
	With WScript.CreateObject("Microsoft.XMLHTTP")
		.open "GET", strURL, False
		.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
		.send
		arrContent = .responseBody
	End With
	strFileName = strURL
	For Each strChar In Array("<", ">", ":", """", "/", "\", "|", "?", "*")
		strFileName = Replace(strFileName, strChar, "_")
	Next
	With WScript.CreateObject("ADODB.Stream")
		.Type = adTypeBinary
		.Mode = adModeReadWrite
		.Open
		.Write arrContent
		.SaveToFile strFileName, adSaveCreateOverWrite
		.Close
	End With
End Sub
'=============================================================================

В самом простом варианте — достаточно просто перетащить файл с URL'ами, например, такой:



Код:

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

http://www.script-coding.com/
http://www.oszone.net/
http://www.ya.ru/
https://www.google.ru/webhp

на[/i] приведённый скрипт в Проводнике.



P.S. На мой взгляд, использование wget или cURL представляется более целесообразным.
Ответить

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