![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.05.2010
Сообщений: 3
|
![]()
Нужно импортировать данные из протокола содержащегося в интернете на нескольких страницах.
Урл страницы выглядит следующим образом: http://www.site.ru/id=НОМЕР&page_id=1 На странице после шапки и номеров страниц лога 1 | 2 | 3 | 4 | 5 | >> идет 50 строк с информацией, которую собственно и нужно импортировать в эксель. При использовании встроенного экселевского механизма "Получить внешние данные Из Веба" столкнулся с рядом проблем: 1. Отдельно "50 строк с информацией" импортировать отказывается (нет стрелочки на которую нажимать), поэтому приходится главную таблицу импортировать - полностью страницу. 2. При импортировании на выходе получаю таблицу без форматирования, а мне нужно чтобы форматирование текста цветом сохранилось, на базе этого форматирования будет осуществляться дальнейший анализ. 3. Как сделать чтобы можно было сразу импортировать много страниц? В идеале задать глубину запроса для части урла page_id=1 и до 50 например, задать НОМЕР в урле (он для разных ситуация разный может быть), и еще задать интервал с которым можно обращаться к следующей странице (если очень быстро все страницы запрашивать сайт забанит айпи). 4. Можно ли сразу при импортировании отсекать ненужные строки, строки которые не содержат например заранее заданную подстроку "superpuper"? Я при обработке данных пользуюсь таким приемом [=ЕСЛИ((ПРАВСИМВ(A1;10))="superpuper ";1;0)], зная что искомая подстрока всегда находится в конце текста и занимает ровно 10 символов, а потом фильтрую единички по этому столбцу. Мне не очень удобно потом с таблицей с фильтром работать, есть ли способ более красиво создать новую таблицу содержащую только строки с текстом "superpuper"? Хотелось бы разобраться с этими нюансами в комплексе, но если будут какие-то отдельные советы по пунктам, то тоже буду очень рад. |
![]() |
![]() |
![]() |
#2 | |||||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Для начала, не помешает взглянуть на этот сайт - сообщите настоящий адрес ресурса.
Цитата:
Но с некоторых сайтов можно скачать и всё сразу - бывает, что можно в строку адреса добавить параметр, указывающий на количество информации, выводимой на одну страницу. Попробуйте вручную (путём подбора параметров в адресной строке) добиться вывода ВСЕЙ нужной информации. Если не получится - придётся перебирать страницы в цикле. Цитата:
Цитата:
Обычно страницы грузятся не очень быстро, так что между загрузками отдельных страниц проходит 1-3 секунды. Проворный юзер с быстрым интернетом вручную прощелкает все страницы ещё быстрее... Цитата:
Есть несколько вариантов, например: 1) получаем html - код страницы, и парсим её 2) сохраняем страницу в файл htm, открываем этот файл Word-ом (при помощи макроса), далее работаем с объектами Word - перебираем таблицы, анализируем цвета... 3) изучаем DOM, и работаем с объектной моделью веб-страницы Примеры кода можно глянуть здесь: http://www.planetaexcel.ru/forum.php/?thread_id=12478 Цитата:
Если вам удастся написать макрос, который быстро и безошибочно выкачает все страницы с нужного вам сайта, то с удалением лишних строк вы и подавно справитесь. Конкретный способ зависит от выбранного метода получения информации с сайта. |
|||||
![]() |
![]() |
![]() |
#3 | ||||||
Регистрация: 21.05.2010
Сообщений: 3
|
![]() Цитата:
сайт: ganjawars.ru логин: msexcel пароль: msexcel123 пример протокола: http://www.ganjawars.ru/info.warstats.php?id=729668 Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
2. это ясно, но мне проще тогда сразу ктрл+ц ктрл+в в эксель сразу сделать... 3. ну уж не такая и важная задача чтобы сразу изучать DOM. скорее баловство. |
||||||
![]() |
![]() |
![]() |
#4 | |||
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]() Цитата:
Код:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
посмотрите.может пригодится.Интервал 20 секунд.Без проблем взял все данные.Они на листе5
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 21.05.2010
Сообщений: 3
|
![]()
doober
Спасибо. Работает. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.03.2010
Сообщений: 417
|
![]()
а если для того что бы скачать не обходимо сперва ввести логин и пароль. как такое реализовать?
|
![]() |
![]() |
![]() |
#8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Примерно так:
Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 25.03.2010
Сообщений: 417
|
![]() Код:
object required |
![]() |
![]() |
![]() |
#10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Ну так это была лишь часть кода...
Надо было проявить немного фантазии, и, либо добавить на форму компонент WebBrowser, либо дописать в коде строку типа Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
макрос обновления данных из интернета | Legame | Microsoft Office Excel | 14 | 01.10.2015 09:26 |
импорт данных из интернета | peq | Microsoft Office Excel | 7 | 30.04.2010 09:12 |
Макрос для экспорта данных в таблицу эксель | scythe | Microsoft Office Excel | 2 | 21.02.2010 22:18 |
Эксель + Интернет ( экспорт данных) | ShamanK | Microsoft Office Excel | 1 | 16.10.2009 13:23 |