|
Парсер сайта
|
|||
---|---|---|---|
#18+
Здравствуйте. Тренируюсь, пишу парсер сайта https://www.diablosport.com/products/trinity.html Использую встроенный компонент WebBrowser Хочу спарсить Year, Make, Model, Engine и характеристики устройства. Исследовав иходный код страницы, понял, что делать выбор в комбобоксах програмно можно вызывая соответсвующие JavaScrip-функции в коде страницы: Код: c# 1. 2. 3. 4.
(приведенно сокращенно, все делается в циклах с проверками и т.д.) интересует собственно таблица с характеристиками прорграмматора, которая генерируется ajax-запросом на основе выбранных данных: Функция JavaScript Код: javascript 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.
( интересующая таблица ) При этом, используя средства для разработчика Chrome и исследуя исходный код страницы можно увидеть, что таблица есть Но если просто посмотреть исходный код страницы (не в режиме разработчика, а, например, блокнотом), то видно, что соответствующий div пустой, что и получаю в результате использования WebBrowser, потому не могу видеть и парсить данные. Были идеи слегка модифицировать ту функцию, встроить ее в код страницы, чтобы она просто выдавала нужные строки куда-нибудь на тоже встроенный контрол или сразу в C#-код, но не знаю насколько это возможно и возможно ли вообще. Поделитесь, пожалуйста, кто знает, опытом, може есть какие идеи или размышления по этому поводу. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 00:54 |
|
Парсер сайта
|
|||
---|---|---|---|
#18+
При выборе в комбобоксах формируется get-запрос вида: https://www.diablosport.com/products/index.php?option=com_updates&view=tunes&format=json&pid=2&vid=1110 Запросы возвращают json, который обворачивается функцией в html-таблицу, что мешает напрямую подергать все данные гетами с сервера? Здесь vid=1110 как понимаю id-шник категории, можно просто в цикле перебрать и json распарсить. _Novichokсоответствующий div пустой, что и получаю в результате использования WebBrowser WebBrowser здесь скорее всего и не причем, вы точно дожидаетесь окончания загрузки таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 09:46 |
|
Парсер сайта
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIвы точно дожидаетесь окончания загрузки таблицы?Да. установлен цикл на ожидание загрузки. Да и дело не в том, дожидаюсь я ее или нет. В режиме разработчика в хроме она есть, в исходном коде страницы она отсутствует. Изначально я и исходил из того, что таблица есть и ее будет нетрудно спарсить. Какая-то виртуальная она что ли. Сейчас попробую подергать по той ссылке ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 10:35 |
|
Парсер сайта
|
|||
---|---|---|---|
#18+
_NovichokКакая-то виртуальная она что ли. Еще раз - нажмите в мозиле F12 - вкладка Network, открываем страницу и видим что пошли гет-запросы. Смотрим разметку - таблицы естественно нет, выбираем в комбобоксах категорию - смотрим в Network - пошел гет-запрос на сервер, который возвращает данные в json, скрипт подхватывает эти данные и рисует таблицу, вот и все премудрости. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 10:56 |
|
Парсер сайта
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, Тю, та тут вообще все просто: json со всеми vid присутствует в коде страницы. По ходу просто распарсить этот большой json и просто слать запросы на json-характеристики программатора и парсить ответ. часть большого jsonvar applicationChartItems = {"1999":{"CHEVROLET":{"CORVETTE":[["5.7L LS1","876"]],"SILVERADO 1500":[["4.8L V8","881"],["5.3L V8","885"],["6.0L V8","889"]],"SILVERADO 2500":[["4.8L V8","893"],["5.3L V8","897"],["6.0L V8","901"]],"SILVERADO 3500":[["4.8L V8","905"],["5.3L V8","909"],["6.0L V8","913"]],"SUBURBAN":[["6.0L V8","921"]]},"GMC":{"SIERRA 1500":[["4.8L V8","937"],["5.3L V8","941"],["6.0L V8","945"]],"SIERRA 2500":[["6.0L V8","961"],["5.3L V8","957"],["4.8L V8","953"]],"SIERRA 3500":[["4.8L V8","1287"],["5.3L V8","972"],["6.0L V8","976"]]},"PONTIAC":{"FIREBIRD":[["5.7L LS1","1000"]],"TRANS AM":[["5.7L LS1","1004"]]}},"2000":{"CHEVROLET":{"CAMARO Z28\/SS":[["5.7L LS1","873"]],"CORVETTE":[["5.7L LS1","877"]],"SILVERADO 1500":[["4.8L V8","882"],["5.3L V8","886"],["6.0L V8","890"]],"SILVERADO 2500":[["4.8L V8","894"],["5.3L V8","898"],["6.0L V8","902"]],"SILVERADO 3500":[["4.8L V8","906"],["5.3L V8","910"],["6.0L V8","914"]],"SUBURBAN":[["5.3L V8","918"],["6.0L V8","922"]],"TAHOE":[["5.3L V8","934"],["4.8L V8","930"]]},"GMC":{"SIERRA 1500":[["4.8L V8","938"],["5.3L V8","942"],["6.0L V8","946"]],"SIERRA 2500":[["6.0L V8","962"],["5.3L V8","958"],["4.8L V8","954"]],"SIERRA 3500":[["4.8L V8","969"],["5.3L V8","973"],["6.0L V8","977"]],"YUKON":[["5.3L V8","989"],["6.0L V8","993"]]},"PONTIAC":{"FIREBIRD":[["5.7L LS1","1001"]],"TRANS AM":[["5.7L LS1","1005"]]}},"2001":{"CHEVROLET":{"CAMARO Z28\/SS":[["5.7L LS1","874"]],"CORVETTE":[["5.7L LS1","878"]],"CORVETTE Z06":[["5.7L LS6","1052"]],"SILVERADO 1500":[["4.8L V8","883"],["5.3L V8","887"],["6.0L V8","891"]], ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2015, 11:13 |
|
|
start [/forum/topic.php?fid=20&msg=38916046&tid=1401757]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 350ms |
total: | 487ms |
0 / 0 |