|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сохранение загруженной html-страницы |
|
|
[решено] Сохранение загруженной html-страницы
|
Новый участник Сообщения: 14 |
Профиль | Отправить 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") - не получается ничего ввести Как в стандартном окне сохранения файла ввести имя файла из переменной $Rezalt_name ?и нажать кнопку "Сохранить"? |
|
Отправлено: 14:01, 21-05-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Sestrichka:
И к тому же 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) |
|
------- Отправлено: 14:18, 21-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать на счет
Цитата Creat0R:
Мне действительно без диалога вариант больше подходит, но и тот, и другой , к сожалению, в результате создали пустой файл (хотя и с нужным именем,и в нужной директории). Можно ли иначе как-то сохранять фаилы? Особенно меня интересует, как сохранить html-страницу с картинками, чтоб ничего со страницы "не потерялось"? |
|
Отправлено: 15:31, 21-05-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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:
|
||
------- Отправлено: 15:50, 21-05-2009 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sestrichka, если требуется именно содержимое, как таковое, а не отдельные файлы (при использовании описанной ниже методики имена отдельных файлов теряются), то можно получать содержимое страницы и связанных файлов в виде .mht («Веб-архив» в терминологии Microsoft), используя библиотеку Collaboration Data Objects:
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) |
|
Отправлено: 01:05, 22-05-2009 | #5 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Спасибо большое за помощь, нашла более допотопненький вариант:
использую гарячии клавиши браузера. Единственное слабое место этого варианта - надо ставить задержки между командами, т.к. возможна ситуация, когда окошко еще не появилось, а скрипт уже шлет команду окну, которого по сути еще нет. |
Отправлено: 18:23, 27-05-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Sestrichka:
|
|
------- Отправлено: 20:20, 27-05-2009 | #7 |
Новый участник Сообщения: 25
|
Возникла проблема при сохранении содержимого интернет окна с помощью скрипта от Iska (см.три поста выше) сохраняет в .txt иероглифы (на некоторых сайтах). Как туда прикрутить CHARSET, чтобы страницы сохранялись в различных раскладках
|
Последний раз редактировалось adima, 12-11-2009 в 09:13. Отправлено: 20:55, 11-11-2009 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать adima, приведите примеры таких сайтов (конкретно — адреса страниц).
|
Отправлено: 03:26, 12-11-2009 | #9 |
Новый участник Сообщения: 25
|
|
Последний раз редактировалось adima, 12-11-2009 в 09:19. Отправлено: 09:01, 12-11-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Работа с 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 |
|