Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сохранение загруженной html-страницы

Ответить
Настройки темы
[решено] Сохранение загруженной html-страницы

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем!
Мне надо сохранить загруженную html-страницу в файл.
Пишу так:
Код: Выделить весь код
#include <IE.au3>  
#include <file.au3> 
$oIE_2 = _IECreate ("http://vkontakte.ru/index.php") 
_IELoadWait ($oIE_2)   
$R=1 
$Rezalt_name = "Rezalt"&$R 
MsgBox(0,"",$Rezalt_name) 
$Path = "E:\" $var = FileSaveDialog( "Choose a name.", $Path, "(*.html)", 2) 
Send("{"&$Rezalt_name&"}") 
Sleep(3000) 
Send("{ENTER}") 
Sleep(5000) 
_IEQuit ($oIE_2)
Но очевидно не срабатывает Send("{"&$Rezalt_name&"}"), хотя фокус находится на поле ввода имени.
Пробовала и Send($Rezalt_name), и Send("$Rezalt_name") - не получается ничего ввести
Как в стандартном окне сохранения файла ввести имя файла из переменной $Rezalt_name ?и нажать кнопку "Сохранить"?

Отправлено: 14:01, 21-05-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sestrichka:
Пишу так »
Для начала заглините в справку, посмотрите синтаксис кода... «$Path = "E:\" $var = FileSaveDialog» это у вас ошибки не вызывает?

И к тому же FileSaveDialog возвращает полный путь к указанному файлу:

Код: Выделить весь код
#include <Inet.au3>

$sSource = _INetGetSource("http://vkontakte.ru/index.php")

$R = 1
$Rezalt_name = "Rezalt" & $R

;MsgBox(0,"",$Rezalt_name)

$sPath = FileSaveDialog("Choose a name.", "", "(*.html)", 2 + 16, $Rezalt_name)
If @error Then Exit

If StringRight($sPath, 4) <> "html" Then $sPath &= ".html"

$hFileOpen = FileOpen($sPath, 2)
FileWrite($hFileOpen, $sSource)
FileClose($hFileOpen)
А если нужно тихо без диалога, то строчка с FileSaveDialog вовсе не нужна, а переменной $sPath присвоить значение от $Rezalt_name.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 21-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


на счет
Цитата Creat0R:
«$Path = "E:\" $var = FileSaveDialog» это у вас ошибки не вызывает? »
Это у меня опечатка, в коде все в норме - все обзацы на месте.
Мне действительно без диалога вариант больше подходит, но и тот, и другой , к сожалению, в результате создали пустой файл (хотя и с нужным именем,и в нужной директории).
Можно ли иначе как-то сохранять фаилы? Особенно меня интересует, как сохранить html-страницу с картинками, чтоб ничего со страницы "не потерялось"?

Отправлено: 15:31, 21-05-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sestrichka:
Мне действительно без диалога вариант больше подходит »
Код: Выделить весь код
#include <Inet.au3>

$sSource = _INetGetSource("http://vkontakte.ru/index.php")

$R = 1
$sPath = @ScriptDir & "\Rezalt" & $R
If StringRight($sPath, 4) <> "html" Then $sPath &= ".html"

$hFileOpen = FileOpen($sPath, 2)
FileWrite($hFileOpen, $sSource)
FileClose($hFileOpen)
Цитата Sestrichka:
как сохранить html-страницу с картинками, чтоб ничего со страницы "не потерялось"? »
Чтобы оно всё локально сохранилось? Это не так уж и просто, нужно будет парсить Html-код страницы и закачивать отдельно файлы.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:50, 21-05-2009 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Sestrichka, если требуется именно содержимое, как таковое, а не отдельные файлы (при использовании описанной ниже методики имена отдельных файлов теряются), то можно получать содержимое страницы и связанных файлов в виде .mht («Веб-архив» в терминологии Microsoft), используя библиотеку Collaboration Data Objects:
читать дальше »
Как правило, эта библиотека уже установлена, если у Вас установлен Microsoft Office 2000/XP/2003; если у Вас установлен Microsoft Office 2007 или вообще не установлен — то надо пройти по вышеуказанной ссылке, загрузить и установить эту библиотеку.

Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

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

Local Const $adSaveCreateNotExist   =  1
Local Const $adSaveCreateOverWrite  =  2


Local $objIMessage                  = ObjCreate("CDO.Message")
Local $objIConfiguration            = ObjCreate("CDO.Configuration")

Local $strURL                       = "http://www.yandex.ru"
Local $strUserName                  = ""
Local $strPassword                  = ""


$objIMessage.Configuration = $objIConfiguration
$objIMessage.CreateMHTMLBody($strURL, $cdoSuppressNone, $strUserName, $strPassword)

; Сохранить страницу как веб-архив .MHT
With $objIMessage.BodyPart.GetStream()
	.SaveToFile("c:\Page.mht", $adSaveCreateOverWrite)
	.Close()
EndWith

$objIConfiguration                  = 0
$objIMessage                        = 0

Exit(0)
Источник: Серый форум / JScript: Пример сохранения web-страницы в TXT, HTML и MHT (веб-архив).
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 22-05-2009 | #5


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо большое за помощь, нашла более допотопненький вариант:
использую гарячии клавиши браузера.
Код: Выделить весь код
Send("!Фк");сохранить файл
Send("!х") 
Sleep(1000)
Send("!ФЗ");закрыть файл
Единственное слабое место этого варианта - надо ставить задержки между командами, т.к. возможна ситуация, когда окошко еще не появилось, а скрипт уже шлет команду окну, которого по сути еще нет.

Отправлено: 18:23, 27-05-2009 | #6


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sestrichka:
возможна ситуация, когда окошко еще не появилось, а скрипт уже шлет команду окну, которого по сути еще нет »
Для этого есть WinWait которое будет ждать появление нужно окна.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 20:20, 27-05-2009 | #7


Новый участник


Сообщения: 25
Благодарности: 1

Профиль | Цитировать


Возникла проблема при сохранении содержимого интернет окна с помощью скрипта от Iska (см.три поста выше) сохраняет в .txt иероглифы (на некоторых сайтах). Как туда прикрутить CHARSET, чтобы страницы сохранялись в различных раскладках

Последний раз редактировалось adima, 12-11-2009 в 09:13.


Отправлено: 20:55, 11-11-2009 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


adima, приведите примеры таких сайтов (конкретно — адреса страниц).

Отправлено: 03:26, 12-11-2009 | #9


Новый участник


Сообщения: 25
Благодарности: 1

Профиль | Цитировать


http://russianpost.ru

Последний раз редактировалось adima, 12-11-2009 в 09:19.


Отправлено: 09:01, 12-11-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сохранение загруженной html-страницы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Работа с html-кодом страницы, поиск и копирование нужных строк Sestrichka AutoIt 14 02-04-2009 16:51
[решено] Поиск нужного текста в html коде страницы ph0en1x AutoIt 8 16-02-2009 02:38
[решено] перенос части страницы HTML на другую через DOM rus-4-ever Вебмастеру 1 29-10-2008 01:11
Сохранение страницы в Internet Explorer 6.0 sp2 ? GifuN Microsoft Windows NT/2000/2003 1 07-03-2008 15:01
запретить сохранение страницы. ?? Dafi Вебмастеру 48 12-02-2005 23:47




 
Переход