Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2013, 00:54   #1
z00lu
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 10
По умолчанию Выдернуть данные с сайта

Всем доброго дня

Прокачал слегка свои навыки в VBA, но вот в обработке данных с сайта все никак не могу разобраться. Прошу помощи по выдергиванию данных с сайта, а то что-то совсем запутался
Код:
Dim IE  As Object

Sub ассортимент()
Dim Наименование As String
Dim Цена As String
Dim Артикул As String
Dim Наличие As String

'вызываем InputBox  и вводим туда наименование  товара
'поиск по которому будет осуществляться на сайте

Товар = InputBox("Что ищем? ", "наименование")


'запускаем IE
If IE Is Nothing Then
    Set IE = CreateObject("InternetExplorer.Application")
End If
IE.Visible = False 

On Error Resume Next
IE.Navigate "http://ogo1.ru/" 'преходим на сайт для поиска

For i = 1 To 1000: DoEvents: Next
While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend

Set ieDoc = IE.Document.getElementById("search") 'получаем поисковую строку
ieDoc.FirstChild.Value = Товар 'вводим значение в поисковую строку из инпутбокса
ieDoc.FirstChild.NextSibling.NextSibling.Click 'кликаем на кнопку найти

For i = 1 To 1000: DoEvents: Next
While IE.Busy Or (IE.ReadyState <> 4): DoEvents: Wend

' А вот отсюда уже затык (((


'выключаем IE
IE.Quit
Set IE = Nothing

End Sub
Никак не могу програмно кликнуть на 45 ( чтобы на страницу выводилось по 45 наименований)
Код:
<li>
    <a class="inner " data-size="45" href="">45</a>
</li>
Получить данные со страницы поиска в соответствующие переменные
И вывести их в файл

Наименование в первый столбец
(Чехол для HTC One Mini Double Dip Hard Shell HC C850)

Код:
<a class="url back_url_carry setSampleId" title="Чехол для HTC One Mini Double Dip Hard Shell HC C850" 
href="/market/case_telefon/88296-CHehol-dlya-HTC-One-Mini-Double-Dip-Hard-Shell-HC-C850?sample=5266e32bcdb74">
Аксессуары Чехол для HTC One Mini Double Dip Hard Shell HC C850</a>
Цены - во второй
(990.–)
Код:
<span class="price">990.–</span>
Артикул - в третий
(88296)
Код:
<span style="margin-right:10px">88296</span>
Наличие - в четвертый
(Пл. Ильича, Нагатинская, Динамо)
Код:
<span class="where">
                                    &nbsp;&nbsp;Пл. Ильича, Нагатинская, Динамо                                </span>

Конечно было бы великолепно, если бы подсказали как пробежаться по всем страницам поиска введя в InputBox слово "чехол", но думаю смогу с этим разобраться позже самостоятельно

Последний раз редактировалось z00lu; 23.10.2013 в 01:03.
z00lu вне форума Ответить с цитированием
Старый 23.10.2013, 13:13   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

используй класс WinHttpRequest
vba хоть и убожество, но там можно и с http работать и регулярные выражения использовать.

вместо кликов через эксплорер отправляешь post-запросы.

а вообще, лучше всё это на c# делать, там хотя бы HtmlAgilityPack есть...
Rififi вне форума Ответить с цитированием
Старый 23.10.2013, 13:40   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не люблю я кнопки нажимать,если можно и без этого обойтись.
С артикулами и складами сами сможете разобраться.
Вложения
Тип файла: zip ogo1.ru.zip (39.0 Кб, 22 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.10.2013, 19:03   #4
z00lu
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 10
По умолчанию

doober, благодарствую!
Работает, правда чуть иначе чем ожидал...
РАботает только если вводить фирму производителя, если вбить слово "чехол" или "чайник" выдает все и сервера и мышки .... все кроме запрашиваемого товара

Можешь написать кратко алгоритм по которому работает макрос?
z00lu вне форума Ответить с цитированием
Старый 23.10.2013, 19:49   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Научил понимать чехлы и мышки.
Цитата:
Можешь написать кратко алгоритм по которому работает макрос?
Сам не знаю,собрал с сайтов примеры кодов и получился нужный макрос.
Пару строк коментов добавил
Вложения
Тип файла: zip ogo1.ru и чехлы.zip (40.3 Кб, 12 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.10.2013, 20:00   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

это редкий случай, когда макрос работает без алгоритма
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.10.2013, 20:03   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Игорь,мозги и мысли не продаю.
По коду и так все понятно.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
взять данные с другого сайта SkrudjMakdak JavaScript, Ajax 2 05.10.2011 13:31
Получить данные с сайта Andrey85 Работа с сетью в Delphi 2 10.11.2010 21:37
Входные данные сайта BALLIN Помощь студентам 3 13.05.2010 11:13
Прочесть данные с сайта nix01d Общие вопросы Delphi 3 15.04.2010 11:26
программа получающая данные с сайта пауэрлифтинг Работа с сетью в Delphi 1 08.03.2010 19:07