2016-07-20 7 views
0

В настоящее время я работаю над проектом на работе (я стажер), который, как ожидается, займет у меня несколько недель. Это в основном миграция и вставка задания с одного сайта на другой. Чтобы сэкономить время, скуку и, возможно, получить себе работу (если я смогу это сделать своевременно), я ищу способы автоматизации процесса. В настоящее время я определил каждый шаг в этом процессе, кроме одного.Извлечение данных из файла HTML (VBA?)

В принципе, у меня есть другая программа автоматизации, загружающая html-файл и конвертирующая его в текстовый файл для каждой страницы на сайте, которая должна быть скопирована на новую (более 1000). То, что мне нужно сделать с этим html-файлом, - это извлечь только тело, я определил начальную и конечную точку для извлечения из. Оба они отображаются во всех html-файлах.

В настоящее время я пытаюсь использовать VBA в excel, чтобы открыть файл, извлечь данные и записать результат в новый файл, отсюда я могу автоматизировать процесс копирования и вставки.

Я не могу понять, как извлечь данные между этими двумя точками. Я могу извлечь данные между двумя строками, то есть «Пуск» & «Конец», однако, я не могу извлечь данные между двумя тегами html. Любые предложения были бы фантастическими. Я не программист, и я учусь на лету, чтобы завершить этот проект как можно скорее.

Еще раз спасибо.

+4

Если вы можете делать 'start' и' end', почему вы не можете сделать '' и ''? Добро пожаловать в Stack Overflow - люди в целом ценят, что вы публикуете код, который вы уже пробовали решить с помощью ... –

ответ

0

Как правило, это будет сделано так:

Sub Test() Dim IE As Object 

Set IE = CreateObject("InternetExplorer.Application") 
With IE 
    .Visible = True 
    .Navigate "http://www.marketwatch.com/investing/stock/aapl/analystestimates" ' should work for any URL 
    Do Until .ReadyState = 4: DoEvents: Loop 

     x = .document.body.innertext 
     y = InStr(1, x, "Average Target Price:") 
     Z = Mid(x, y, 6) 

     Range("A1").Value = Trim(Z) 

     .Quit 
    End With 
End Sub 

В ваш конкретный случай, это должно быть примерно так:

a = .document.body.innertext 
b = InStr(1, x, "Start") 
c = InStr(1, y, "End") 

d = Mid(a, b, (c-b)) 

Range("A1").Value = Trim(d) 
+0

Что мне нужно, чтобы установить каждый из параметров как? Или нет? –

Смежные вопросы