0. platonov.e 97 16.05.20 13:32 Сейчас в теме

Парсинг html страниц с выводом информации через JavaScript с использованием Selenium

Есть девочки как девочки, есть мальчики как мальчики, есть сайтики как сайтики, но странички их обманщики.

В целях сохранить информацию, от автоматизированного сбора, многие ресурсы пытаются защитить ее. Один из таких способов - вывод информации на странице через JavaScript. При получении такой страницы в 1С, JavaScript не успевает вывести необходимые данные, и в 1с получаем практически пустую страницу.

В статье приведу пример разработки, для парсинга таких страниц, без регистрации и смс.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. D_astana 93 21.05.20 05:29 Сейчас в теме
Одни защищают, другие ломают :)) Интересный подход. Плюс однозначно.
platonov.e; +1 Ответить
2. anton.fly7 149 21.05.20 07:43 Сейчас в теме
Привет!
подскажи пожалуйста, возможно ли достать исходный код ру из pserser.exe ?
oleganatolievich; +1 Ответить
3. platonov.e 97 21.05.20 07:49 Сейчас в теме
(2) Привет. Исходный код парсера есть в статье в 4 пункте
4. anton.fly7 149 21.05.20 08:39 Сейчас в теме
(3) я имею ввиду способ достать исходник из ехе, другой программы, созданной инталером
5. platonov.e 97 21.05.20 08:43 Сейчас в теме
(4) Не знаю, не углублялся в такие вопросы.
6. Yashazz 3255 21.05.20 13:51 Сейчас в теме
Криво, извратно и не прикольно. С тем же успехом можно плагины Оперы использовать, Драгонфлай ту же.
Опираться в работе на левую внешнюю утилиту - покупать кота в мешке.
7. platonov.e 97 21.05.20 14:25 Сейчас в теме
(6) Извратно и не прикольно ок) А что кривого?) Пример? Он не доносит идею?)
А опираться в работе на любую скачанную, с того же инфостарта, обработку или любую бесплатную утилиту - тоже ведь кот в мешке) И тем не менее много людей этим пользуются, даже опенсорс проекты создают) Так что здесь такого?)
13. Yashazz 3255 21.05.20 15:48 Сейчас в теме
(7) Концепция скрещения ежа с ужом кривая. 1С тем и ценна, что это единая механика на единой платформе, и вендор гарантирует единообразную работу, соответствующую ожиданиям разраба, в большинстве условий. Про 1С известны требования, ограничения, поведение. Сторонняя утилита - всегда фактор "икс", всегда риск. Идея идеей, но есть штатная эксплуатация и поддержка, и там свои нюансы. Поэтому любая с ИС - это та же 1С, риски гораздо ниже, а не-пойми-откуда взятый экзешник, имхо, очевидно более проблемная штука. Так что не путайте тёплое с мягким.

Скажем так - когда вы воплотите идею, сделаете проект, а через полгода в самый неподходящий момент сторонняя утилита перестанет работать - вы познаете мощность удара этих граблей)

Если кому не очевидно: а) никто не предугадает поведения утилиты в разных условиях сети, софта, харда, инфраструктуры; б) малое количество накопленных и доступных знаний по утилите, т.к. не ширпотреб; в) при изменениях ситуации её придётся допиливать, при сбоях чинить, а это нужны навыки сверх 1С. Вывод - нафиг надо.
14. platonov.e 97 21.05.20 16:19 Сейчас в теме
(13) Концепция скрещивания ежа с ужом, порождает то, что не могли сделать еж с ежем) То, что не может сделать 1с, может сделать другая утилита, и пользоваться этим, "кривым" порождением иногда приходится) Знаете как сделать это средствами 1с, не выходя за рамки? Поделитесь? Я последнее время слышу потребность в этом, я нашел выход и поделился идеей с другими)

Можно пойти на риск и взять имеющиеся утилиты, можно разработать свою) Можно купить УНФ, а можно разработать свою. Это все вопрос выбора) Вряд ли те, кто покупал УПП, или КА 1.1 году в 2012, думал, что к концу десятилетия придется покупать другую конфигурацию. И что, они оказались застрахованные на всегда?) А ведь эти конфигурации не из дешевых. И даже в этих конфигурациях куча багов, что никто не предугадает их поведения, с исходным открытым кодом. Допиливать самому или писать в поддержку при наличии ИТС?) Допиливать самому - тратить трудозатраты компании за то, что уже заплатили. Тогда получается все нафиг) И в чем эта философия?
Ну мы что то уже далеко углубились)
15. Yashazz 3255 21.05.20 19:08 Сейчас в теме
(14)
Знаете как сделать это средствами 1с, не выходя за рамки?
Ну если навскидку, то внутри самой 1С средствами WebKit, или действительно хттп-запросами поиграться. Делал, работало.
8. rusmil 208 21.05.20 14:28 Сейчас в теме
При получении такой страницы в 1С, JavaScript не успевает вывести необходимые данные
А что если просто добавить задержку например 5 секунд, html страница загрузится и потом уже ее парсить? Можете привести пример сайта где такой фокус не пройдет?
9. platonov.e 97 21.05.20 14:31 Сейчас в теме
(8) Попробуйте, хз как http запрос будет держать паузу) Может получится, буду рад если расскажите, такое не сразу гуглится)
Пример сайта есть в статье, мвидио.
11. утюгчеловек 12 21.05.20 14:38 Сейчас в теме
(9) Я делал через WebDriverWait, https://selenium-python.readthedocs.io/waits.html#explicit-waits, но у меня было точно известно чего нужно дожидаться
10. утюгчеловек 12 21.05.20 14:35 Сейчас в теме
Хорошая и жизненная тема, но статья ведь совсем не про 1С.

Не понятно зачем отдавать сырой результат в 1С. Раз ты уже умеешь в парсинг на питоне и уже получил страницу в него - сделай всю грязную работу там и отдай в 1С готовые циферки/буковки. Или я ошибаюсь?
12. platonov.e 97 21.05.20 15:28 Сейчас в теме
(10) Да, конечно можно все сделать в скрипте, можно сделать как хочешь, как видит художник)
Скрипт собирался из комментариев на stackoverflow)) Мне проще было передать сырой результат в 1с, и там работать с ним) Я пытался донести идею как это можно сделать, а каждый уже заточит как ему удобно)
16. starik-2005 2174 22.05.20 15:05 Сейчас в теме
Питон - нормально, только не понятно, зачем компиляция? 99% времени все-равно тратится на ожидание страницы. Я так понимаю, что компиляция нужна, чтобы не ставить на комп питон, так все-равно вызываете его "py скрипт.exe ..."? Так еще и гугловский механизм все-равно придется ставить.

ПОсмотрел сайт MVideo - да, с наскока там не разобраться, т.к. очень мудрено все. Как я понял, скрипт дергает виджеты и вставляет их в контейнеры, поэтому постобработка полностью полученной страницы - вполне нормально. В части скриптов есть сеттаймаут на 1500 мс, так что, полагаю, пятисекундное ожидание может решать вопрос без дополнительных танцев с бубном.
iulyus; platonov.e; +2 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день