Страницы: 1
RSS
[ Закрыто ] Собрать таблицы из 100500 страниц в одну книгу Excel
 
Всем, привет.
Есть сайт с таблицей, и 100400 страницами. Хочется его не спеша, "слить"  в один Excel.

Нашел, простенький скриптик тут
https://vc.ru/newtechaudit/118651-parsing-sayta-s-pomoshchyu-excel
но его расместили в виде картинок... Может у кого то есть уже готовый такой, или аналогичный скриптик?....
Цель, собрать таблицы из 100500 страниц в одинe эксель табицу.

Заранее спасибо за помощь!
 
Перенабил буквицами :-)
И конечно не работает , те кто с руками посмотрите, где надо докрутить.
MiD пишет функция не предопределена
Код
Sub MyParser()
Set sp = ThisWorkbook.Sheets(1)
Set ww = CreateObject("InternetExplorer.Application")
ww.Visible = True
    For i = 2 To 4
        link = "http://&page=" & i ' Указываем ссылку на страчику
            
        ww.navigate link
        While ww.BUSY Or (ww.READYSTATE <> 4): DoEvents: Wend
        getHTML = ww.document.body.innerHTML
        dl = Len(getHTML)
         
            
             
            a = InStr(na, getHTML, "tr class=")
            If a > 0 Then
            LR = sp.Cells(Rows.Count, 1).End(x1Up).Row
        
            'Несколько манипуляций для вырезки необходимой информации
             
            rn = InStr(a, getHTML, "<td>")
            rk = InStr(rn, getHTML, "</td>")
            rrn = Mid(getHTML, rn + 4, rk - rn - 4)
             
            'Записываем результат в таблицу
            sp.Cells(LR + 1, 1) = rrn  ' реестровый номер адвоката
             
            'Несколько манипуляций для вырезки необходимой информации
            fn = InStr(rk, getHTML, "lawyers/show/")
            fn = InStr(fn, getHTML, ">")
            fk = InStr(fn, getHTML, "/a")
            ffn = Mid(getHTМL, fn + 1, fk - fn - 1)
            'Записываем результат в таблицу
            sp.Ce11s(LR + 1, 2) = ffn 'ФИО адвоката
     End If
  Next
End Sub
Изменено: Laa911 - 18.06.2020 12:12:13
 
Цитата
Laa911 написал:
MiD пишет функция не предопределена
Попробуйте MID заменить на VBA.MID$
Натыкался на подобные причуды в Excel - иногда помогало...?
 
Да, это кажется помгогло

Но вылетает, что то типа блокировка EndIF....
Похоже нужен мозг программиста :-) что бы понять ,что потеряли авторы в коде :-)  
 
Цитата
Laa911 написал:
,что потеряли авторы в коде :
Не вижу закрытия проверки (End If) и не вижу Next
 
Цитата
Laa911 написал:
MiD пишет функция не предопределена
Цитата
... надписать по-латыни или на другом каком языке... Н.Гоголь. Ревизор
Владимир
 
Цитата
sokol92 написал:
MID
Да, скопимастил у вас заработало :-) чудеса
 
Цитата
Юрий М написал:
Не вижу закрытия проверки (End If) и не вижу Next

Добавил, но стало вылетать тут

 a = InStr(na, getHTML, "tr class=")  - Run Time Eror '5' invalid procedur or argumen
 
Код
Sub MyParser()
Set sp = ThisWorkbook.Sheets(1)
Set ww = CreateObject("InternetExplorer.Application")
ww.Visible = True
    For i = 2 To 4
        link = "http://&page=" & i ' Указываем ссылку на страчику
           
        ww.navigate link
        While ww.BUSY Or (ww.READYSTATE <> 4): DoEvents: Wend
        getHTML = ww.document.body.innerHTML
        dl = Len(getHTML)
        
           
            
            a = InStr(na, getHTML, "tr class=")
            If a > 0 Then
            LR = sp.Cells(Rows.Count, 1).End(x1Up).Row
       
            'Несколько манипуляций для вырезки необходимой информации
            
            rn = InStr(a, getHTML, "<td>")
            rk = InStr(rn, getHTML, "</td>")
            rrn = Mid(getHTML, rn + 4, rk - rn - 4)
            
            'Записываем результат в таблицу
            sp.Cells(LR + 1, 1) = rrn  ' реестровый номер адвоката
            
            'Несколько манипуляций для вырезки необходимой информации
            fn = InStr(rk, getHTML, "lawyers/show/")
            fn = InStr(fn, getHTML, ">")
            fk = InStr(fn, getHTML, "/a")
            ffn = Mid(getHTМL, fn + 1, fk - fn - 1)
            'Записываем результат в таблицу
            sp.Ce11s(LR + 1, 2) = ffn 'ФИО адвоката
     End If
  Next
End Sub
Изменено: Laa911 - 18.06.2020 02:01:47
 
Странно окошко IE открывается и все... выледает дебагер..

причем старнно, если странички прокликать, то открывается в броузере норм
А если из Екслея то 404 вылетает..

Может есть кто из программистов, кто может подшаманить ;-) Для бестолковеньких ;-)))
Изменено: Laa911 - 18.06.2020 02:04:15
 
Laa911, если мысль ворочалась медленнее, чем клацание мышкой, можно вернуться и дополнить предыдущее ообщение, а не множить очереди.
Отредактируйте сообщение №7, нижние будут удалены
 
Вот подумал, а без клика на каждой страничке можно как то с ВЕБа запросить всю табличку разом?
Может какая то хитрая есть команда? что то типа ALL?
 
Цитата
Laa911 написал:
можно как то с ВЕБа запросить всю табличку разом
Для начала нужно знать, что это за таблица. Многие открытые данные есть уже в полном виде.
Владимир
 
Laa911, сообщите в личку, когда готовы будете отреагировать на сообщение №11
Страницы: 1
Наверх