|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
доброго времени суток! Подскажите новичку, как можно в Экселе через vba на сайте http://rts.micex.ru/ru/search.aspx вбить в строку поиска определенную бумагу (напр, Газпром) и вывести в Эксель количество объявлений по бумаге. Не могу разобраться какие библиотеки для этого нужно подключить к ВБА и как в итоге отправлять информацию на сайт Если можно, по пунктам опишите, пожалуйста, все необходимые процедуры. И если есть подхоящий код, то буду очень благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2012, 17:35 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Вот составил код, однако возник затык с выводом данных с интернет страницы. Макрос работает рандомно. Иногда выдает результат, иногда ошибку "Object variable or With block variable not set" в строке tempHTML = IE.document.body.innerHTML В чем причина такого рандома? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 00:04 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
> JleCTaM > Иногда выдает результат, иногда ошибку "Object variable or With block variable not set" в строке tempHTML = IE.document.body.innerHTML > > В чем причина такого рандома? COM-сервер IE не всегда успевает ответить. Попробуйте вместо 'internetexplorer.application' использовать 'Msxml2.XMLHTTP'. Может понравится. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 03:41 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Проблема в том, что IE.readyState = 4 после нажатия Submit остается с некоторой задержкой, то есть второй документ не грузится. Я попробовал ввести секундную задержку перед циклом IE.readyState <> 4 и ошибка перестала появляться. Но это неправильный подход, действительно лучше работать с MSXML ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 09:32 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
скукотища Shocker.Pro огромное спасибо за помощь, вы мне реально помогли! И кстати, макрос с 'Msxml2.XMLHTTP' работает раз в 10-15 быстрее, чем через ie !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 18:05 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Разумеется, ведь он не грузит в память тяжеленный иэксплорер ) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 18:12 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
> Shocker.Pro > Разумеется, ведь он не грузит в память тяжеленный иэксплорер ) дело скорее не в IE ( хотя и в нём тоже ), а в этом цикле Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Изврат ещё тот. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 18:27 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Еще возникла такая проблемка: переход по ссылке http://rts.micex.ru/ru/search.aspx отправляет пользователя на поиск материалов сайта, но на сайте http://rts.micex.ru/ еще есть поиск по "ценным бумагам" и "контрактам"... (выбор над строкой поиска) То есть, таким образом, чтобы выполнить поиск по категории "ценная бумага", нужно программно на нее нажать. Вопрос в том, можно ли это сделать средствами Msxml2.XMLHTTP? Я уже попытался на сайте http://rts.micex.ru/ выбрать категорию "ценная бумага", ввести Газпром и нажать на поиск, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
но теперь не знаю, как можно данные со страницы через Код: vbnet 1.
получить, какой URL нужно писать? или как можно просмотреть текущую загруженную страницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 21:19 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
> JleCTaM > {skipped} > но теперь не знаю, как можно данные со страницы через > > rq.Open "GET", URL, False > > получить, какой URL нужно писать? > или как можно просмотреть текущую загруженную страницу? (!) в _данной_ задаче надо использовать метод POST rq.Open " POST ", URL, False rq.responsetext даст Вам все даные, возвращенные сервером на Ваш запрос. Какой URL - это Вам решать ( задача то Ваша ). Просмотреть текущую загруженную страницу можно в браузере... полуофф Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2012, 22:24 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
скукотища, здорово, что вы нашли url адреса страниц по ценным бумагам и по контрактам! Просто мое зрение отказывалось их находить на сайте, я все пытался именно через поисковую строку кликами выбрать категорию поиска. Огромное спасибо! Но вот интересно на будущее, если придется проводить поиск по сайтам, на которых будет форма, в которой можно будет выбирать закладки и причем url адрес страницы меняться не будет (например, выбор между простым поиском и расширенным внутри формы), то уже средства Msxml2.XMLHTTP получается не помогут? Как я понимаю, в таких случаях придется запускать IE и делать через Код: vbnet 1.
Возможно я что-то упустил в возможностях Msxml2.XMLHTTP... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2012, 00:57 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
>JleCTaM > Но вот интересно на будущее, если придется проводить поиск по сайтам, на которых ... > {sipped} > то уже средства Msxml2.XMLHTTP получается не помогут? Помогут. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2012, 01:29 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
скукотища, Работает! В общем основной принцип понятен. Это действительно удобно! Спасибо! =) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2012, 16:11 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Shocker.ProПроблема в том, что IE.readyState = 4 после нажатия Submit остается с некоторой задержкой, то есть второй документ не грузится. Я попробовал ввести секундную задержку перед циклом IE.readyState <> 4 и ошибка перестала появляться. Но это неправильный подход, действительно лучше работать с MSXML Нередко после нажатия Submit изменяется адрес страницы, в таких случаях с IE можно отслеживать IE.LocationURL Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2012, 19:09 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
omegastripes, Очень интересная тема. А если URL заранее не известен и есть только строка поиска и кнопка. Как в таком случае использовать 'Msxml2.XMLHTTP'?? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:32 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Воспользоваться Fiddler'ом, он подскажет урл. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:14 |
|
VBA. Эксель. Поисковые запросы на сайтах
|
|||
---|---|---|---|
#18+
Antonariy, Но если этих адресов очень много.? и плюс они могут изменяться. Задача сводится к тому что нужно выполнить поиск по сайту. Поиск осуществляется по наименованию компании, затем нужно проверить сколько компаний получилось в списке, если больше 1 то выбрать нужную, загрузить ее страницу и далее забрать инфу. И так очень много раз. Еще и сайтов несколько. А через ком вообще не получается, не читается свойство document ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 16:02 |
|
|
start [/forum/topic.php?fid=60&fpage=22&tid=2155544]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 153ms |
0 / 0 |