powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сохранить html код через VBA
25 сообщений из 28, страница 1 из 2
сохранить html код через VBA
    #36682338
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается через vba сохранить html код после обработке на сервере.
Подскажите.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682351
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62Не получается
Мы должны перелопатить ваш код, вычленить оттуда сохранение, догадаться, какая возникает ошибка? Или вы просто выложите неработающий фрагмент с комментариями?
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682400
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не так уж это сложно)
Код: plaintext
1.
2.
3.
4.
5.
6.
 s = ie.Document.body.innerHTML
    
           Open "C:\Рабочий стол\расчеты\test.txt" For Output As # 1 

    Print # 1 , s

    Close # 1 
Понятия не имею, где тут ошибка, лично я уже 100500 лет пользуюсь этими функциями и забот не знаю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Sub WriteFile(path As String, r() As Byte)
    Open path For Binary As # 1 
    Put # 1 , , r
    Close # 1 
End Sub

Public Sub WriteFileString(path As String, conts As String)
Dim r() As Byte
    r = StrConv(conts, vbFromUnicode)
    Open path For Binary As # 1 
    Put # 1 , , r
    Close # 1 
End Sub
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682415
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе так уж это сложно)
Понятия не имею, где тут ошибка
Так и я о том. Заглянул, увидел запись файла, криминала не нашел.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682440
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

макрос записывает в "C:\Рабочий стол\расчеты\test.txt" html код но не весь.
незнаю почему.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682449
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62Shocker.Pro,

макрос записывает в "C:\Рабочий стол\расчеты\test.txt" html код но не весь.
незнаю почему.

а в переменную "s" он попадает весь? что говорит точка останова?
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682459
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682462
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее все содержимое body.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682470
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой размер обрезанного файла получается? Не 64кб часом?
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682494
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62,

Через vba я забполняю web-формы на сайте.

Public Function EnterTopecomRu(strFrom As String, strCityes As String, Volume As Currency, Ves As Currency)
Dim a As String
Dim b As String
Dim start As Long


Dim v As Variant
Dim i As Integer
Dim ie As Object
Dim varReturn As Variant
Dim From As String, Cityes As String
From = CurrentDb.OpenRecordset("select cod from ref_filials where City = """ & strFrom & """;").Fields("Cod").Value
Cityes = CurrentDb.OpenRecordset("select cod from ref_filials where City = """ & strCityes & """;").Fields("Cod").Value

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True

ie.Navigate ("http://www.pecom.ru/ru/calculator/?type=4")

varReturn = SysCmd(acSysCmdInitMeter, "Entering to pecom.Ru ...", 100)
While CBool(ie.Busy)
i = i + 1
varReturn = SysCmd(acSysCmdUpdateMeter, Int(i / 30000 * 100))
If i > 29999 Then
varReturn = SysCmd(acSysCmdClearStatus)
Beep
MsgBox "Something is wrong. pecom.Ru is not accessible", vbCritical, "pecom.Ru"
ie.Quit
Set ie = Nothing
Exit Function
End If
DoEvents
Wend
varReturn = SysCmd(acSysCmdClearStatus)

ie.Document.Forms(0).elements("from").Value = From
ie.Document.Forms(0).elements("cities").Value = Cityes
ie.Document.Forms(0).elements("objem[]").Value = CStr(Volume)
ie.Document.Forms(0).elements("ves[]").Value = CStr(Ves)


For Each v In ie.Document.Forms(0).elements("uchet") 'учет габарита 0/1
If v.Value = "1" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("gpack") 'жесткая упаковка 0/1
If v.Value = "1" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("plomb") 'пломбировка 0/1
If v.Value = "1" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("inmsk2") 'сети 0/4
If v.Value = "4" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("srochno") 'срочный забор 0/1
If v.Value = "1" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("tent") 'растентовка забор 0/1
If v.Value = "1" Then v.Checked = True
Next
For Each v In ie.Document.Forms(0).elements("tent_d") 'растентовка доставка 0/1
If v.Value = "1" Then v.Checked = True
Next


Потом отсылаю эти данные на сервер.

ie.Document.Forms(0).submit



Сервер присылает расчет с итоговой ценой.

Цена записанна в html коде который получился после отправки на сервер.

Мне необходимо эту цену как-нить выдернуть.

Я сохраняю html код в текстовый файл test.txt и начинаю его парсить.


s = ie.Document.body.innerHTML

Open "C:\Рабочий стол\калькуль\test.txt" For Output As #1

Print #1, s

Close #1

start = InStr(1, a, "table width=""100%"" class=""tdbold""><")

start2 = InStr(start, a, "align=""center"">")

start3 = InStr(start2, a, "</td><td")

start4 = Len("align=""center"">")

b = Mid(a, start2 + start4, start3)

MsgBox b
End Function



Но почему-то в файл test.txt сохраняется не весь код,там нет итоговой цены.


Как мне правельно сохранить весь html код который появляеться после обработке на сервере?Чтобы оттуда выдернуть итоговую цену.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682498
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

34 кб
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682509
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
osh62

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
   ie.Document.Forms( 0 ).submit



'Сервер присылает расчет с итоговой ценой.

'Цена записанна в html коде который получился после отправки на сервер.

'Мне необходимо эту цену как-нить выдернуть.

'Я сохраняю html код в текстовый файл test.txt и начинаю его парсить.


    s = ie.Document.body.innerHTML

.

osh62,

страница не успевает загрузится полностью когда ты её хтмл - загружаеш в переменную

тегами пользуйся!!
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682514
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62Как мне правельно сохранить весь html код который появляеться после обработке на сервере?

Этот вопрос не имеет никакого смысла, если в переменной "s" находится нужный результат. То есть либо стоит вопрос, почему нужный результат не попадает в переменную "s", либо почему переменная "s" не сохраняется файл. Нет никакого смысла смешивать.

Если в "s" то, что нужно (кстати, а какого размера текст в переменной "s" перед сохранением?), то это крайне странно.

Если же в "s" не попадает то, что вам нужно, скорее всего причина кроется в асинхронном выполнении запроса эксплорером - надо ловить его события.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682520
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

тегами пользуйся!!

не понял

Это как нужно сделать?
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682521
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сохраняется все, что требуется, оно весит 29 867 байт, что я делаю не правильно?
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682530
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62ё,
тегами пользуйся!!
не понял
Это как нужно сделать?

Размещать код между [SRС vba] и [/SRС]
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682538
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
osh62ё,

тегами пользуйся!!

не понял

Это как нужно сделать?

это значит - когда выкладуеш "простыни" кода - помещай его в тег [ src ]

по вопросу:
поставь точку останова на строке
Код: plaintext
1.
    s = ie.Document.body.innerHTML
когда выполнение дойдёт до неё - пойди покури
по возвращении - нажми Ф5,
открой свой файл - test.txt и поиском найди 15917.6

найдёш - делай выводы
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682541
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёпо вопросу:
поставь точку останова на строке
Код: plaintext
1.
    s = ie.Document.body.innerHTML


не прав
не на этой строке, а не следующей!
Ибо возникнет пауза, за которую IE успеет дочитать запрос и в "s" уже попадет то, что надо
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682555
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proне прав
не на этой строке, а не следующей!
Ибо возникнет пауза, за которую IE успеет дочитать запрос и в "s" уже попадет то, что надо

А, блин, ё - ты то же самое имел ввиду, только другим способом, извини.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682579
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё,

когда выполнение дойдёт до неё - пойди покури
по возвращении - нажми Ф5,


А есть какой-нить другой способ?
Т.к. моя задача пересчитывать около 10000 перевозок каждую неделю на этом сайте и получить цены за эти перевозки.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682609
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osh62А есть какой-нить другой способ?

Я же вам говорил - ловите события IE

StateChanged, если не ошибаюсь
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682630
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
osh62...
А есть какой-нить другой способ?
Т.к. моя задача пересчитывать около 10000 перевозок каждую неделю на этом сайте и получить цены за эти перевозки.

...не, ну кино ёй богу

а как вы думаете, что делает вот этот цикл в вашем коде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    ie.Navigate ("http://www.pecom.ru/ru/calculator/?type=4")
    
    varReturn = SysCmd(acSysCmdInitMeter, "Entering to pecom.Ru ...",  100 )
    While CBool(ie.Busy)
        i = i +  1 
        varReturn = SysCmd(acSysCmdUpdateMeter, Int(i /  30000  *  100 ))
        If i >  29999  Then
           varReturn = SysCmd(acSysCmdClearStatus)
           Beep
           MsgBox "Something is wrong. pecom.Ru is not accessible", vbCritical, "pecom.Ru"
           ie.Quit
           Set ie = Nothing
           Exit Function
        End If
        DoEvents
    Wend
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682644
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у автора видимо очень слабый инет или сервер, куда он стучится очень тормознутый. 10000 позиций - это ерунда. а вы не пробовали обратиться к админу того сайта, может у них есть сервис или API для доступа к инфе напрямую.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682680
osh62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

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


К сожалению никак не получится.
...
Рейтинг: 0 / 0
сохранить html код через VBA
    #36682683
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ServerXMLHTTP ещё попробуйте в ассинхронном режиме
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сохранить html код через VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]