Плагин для извлечения данных с сайтов

    Коллеги-разработчики выпустили плагин, который умеет извлекать и анализировать плохо структурированную информацию. Проект ориентирован на самый широкий круг пользователей, в частности будет полезен владельцам интернет-магазинов и их клиентам. Что это и как работает — на видео:



    Сервис называется Convextra. Работает он следующим образом: при запуске плагина вызывается программный код, который анализирует информацию на странице и осуществляет переход по страницам сайта. Для перехода плагин использует специальный поиск по кнопкам для навигации на сайте или пользователь может самостоятельно указать на данную кнопку. В течении нескольких секунд плагин собирает всю информацию, которая находится на странице в собственную таблицу. Далее из таблицы пользователь можете вывести данные в файл формата CSV, указав какие данные необходимо отображать. Повседневное применение осуществляется самым тривиальным способом: пользователь перетаскивает кнопку плагина на панель закладок и вызывает его на странице магазина. В течении нескольких секунд данные автоматически будут представлены в таблицу, ему остаётся только сохранить их в файл.

    Плагин пока работает не безупречно, разработка находится где-то между альфа и бета-стадиями. Так что если на каком-то сайте он не запустился, то просьба не кидать тухлыми помидорами: цель поста — не реклама, а фидбек от потенциальных пользователей. В первую очередь плагин был разработан для владельцев интернет-магазинов. Анализ данных на рынке — очень важная и одна из труднейших работ для магазина, плагин помогает все данные собрать в таблицу, откуда проводить анализ будет проще. Также разработка будет полезна людям, которые хотят выбрать товар или магазин, где его можно будет купить, сэкономив при этом часть бюджета. Поэтому будем благодарны за отзывы и пожелания — какие функции необходимы, каким образом вы бы эту штуку применяли.
    Support the author
    Share post

    Comments 48

      +6
      Круто, спасибо.
        +4
        Спасибо, опробовал на десятке используемых мной ресурсов, результат впечатляет.
          –34
          Рекорд, блять, чиллаут.
            +2
            Было бы здорово иметь возможность писать свои правила для парсинга конкретного сайта, как в плагине AutoPager (FireFox), например.
              +1
              Вы прямо в точку :) Возможность задавать свои правила запланирована на самое ближайшее будущее. Можно будет «вручную» задать правило для прохода по страницам сайта (потому как автоматическое распознавание ссылок пагинации не всегда отрабатывает корректно) указав шаблон URL.
                0
                я пользуюсь плагином iMacros. Мощная штука.
                +4
                [2] file_put_contents(urlcache/e091fc13b3d02867c3ecc40a34bec5bf): failed to open stream: No such file or directory in file /var/www/sites/parseit/gg/components/ParseItSourceManager.class.php at line 102

                Осторожнее с выводом ошибок на клиент.

                file_put_contents без задания контекстов не очень хорошо использовать. Тайматов нет, может «залипнуть». Это замечания возникшие с ходу с точки зрения бэкэнд разработчика. Но вообще очень круто.

                Не знал, что можно загрузить JS через закладки )
                  +4
                  Это старинный метод, в народе называется «закладурки»
                    0
                    Странно, что настройками безопасности эту возможность по дефолту не зарезали. Ведь как я вижу такой JS через XHR начинает тягать данные данные со стороннего, относительно загруженного адреса, ресурса. Получается, что если юзер поставить себе такую закладку, то его браузер может стать частью бота. Или я где-то ошибся или что-то по незнанию не учел?
                      +1
                      Да, но скрипт каждый раз нужно запускать вручную.
                        0
                        Ну тут методы социальной инженерии творят чудеса )
                  0
                  Странно немного работает. Попробовал на одном ресурсе-каталога, информацию вывело в попап, но при попытке перейти на вторую страницу результатов в попапе, распарсились какие-то левые данные, а при попытке отправить коммент и вообще в ифрейме перекинуло на сайт плагина.
                  Сыровато.
                    0
                    Как я понимаю браузер через JS лезет на сервер через XHR, а тут уже тянет инфу с нужного сайта инфу сам? По сути — прокси. Нет ли опасений за сервер? Я конечно понимаю, что альфа и на этой стадии об этом думается не очень активно, но тем неменее есть ли соображение по защите своего сервера.
                      0
                      Вы затронули один из краеугольных вопросов :) C одной стороны, использование канала сервера для загрузки страниц создает лишнюю нагрузку, но зато позволяет пользователям парсить большие объемы данных — например, можно запустить загрузку 100 страниц, спокойно закрыть браузер, и потом в личном кабинете скачать результат парсинга. С другой стороны, загрузка через клиент, а не сервер тоже обладает рядом преимуществ — снимается нагрузка с сервера, автоматически решается проблема со страницами, требующими авторизации (не нужно синхронизировать куки между клиентом и сервером) или страницами, где хтмл формируется посредством JavaScript.

                      Пока используется комбинированное решение — если от парсера не требуется проход по страницам, то плагин передает на сервер html код текущей страницы, и серверу нет необходимости заново ее загружать. А в случае парсинга многих страниц, их загрузка происходит на стороне сервера.

                      В будущем планируем реализовать оба метода и дать конечному пользователю право выбора :)
                      +1
                      Для источника идей можно использовать отличный коммерческий продукт www.visualwebripper.com/
                        +1
                        удалено
                          0
                          В safari не работает. В закладки не переносится.
                            0
                            Экспорт не работает. Хром.
                              0
                              скажите, пожалуйста, url на котором не работает экспорт — будем фиксить ;)
                                0
                                Аналогично, при экспорте кидает на вашу главную страницу, на которой не могу зарегистрироваться/авторизоваться
                                  0
                                  Экспорт не работает если выбираю более одной страницы
                                  Здесь
                                  market.yandex.ru/guru.xml?CMD=-RR=0,0,0,0-PF=1801946~EQ~sel~1870751-VIS=70-CAT_ID=116338-EXC=1-PG=10&hid=90589
                                  Да и еще на паре других случайных сайтов. Сообщает «Export failed :(»
                                  +1
                                  Крутая тулза. Молодцы!
                                    0
                                    Задумка хорошая, для примера пошел на амазон — кривенько отработал:( Попробуйте сами на списке результатов поиска. Работа плагина может осуществляться оффлайн или завязана на ваш сайт?
                                      0
                                      С амазоном пока не справляется, верстка слишком хитрая для плагина. Научим в будущем и ее обрабатывать. Работа плагина возможна только через наш сервер, но в этом и есть реализация некоторой «оффлайновости» — можете запустить задание для парсинга в личном кабинете, и не держать открытой вкладку с целевым сайтом, а скачать уже готовый файл экспорта когда вам будет удобно
                                      +1
                                      Вот ТУТ не захотел даже загрузиться.
                                        0
                                        frameset внутри frameset'a внутри frameset — да, к сожалению, такой вариант мы не предполагали :) Спасибо за интересный кейс, добавим в баглист
                                          0
                                            0
                                            Да, там та же самая проблема с framest'ами. Плагин не умеет работать внутри фреймов
                                        +1
                                        Область применения очень ограничена. Тысячи и десятки тысяч страниц (типичный проект) такой штукой вряд ли отработаешь.
                                          +1
                                          Каким инструментом в видео можно вставлять такие подсказки, как в ролике?
                                            0
                                            Было бы круто оформить в виде расширений для браузеров. Например, у меня в браузере (Chrome) нет панели закладок (отключена, считаю ее моветоном), и ради одной кнопки (пусть даже такой классной) не хочется ее включать, а вот панель с кнопками расширений находится справа от адресной строки и активно используется.
                                              +2
                                              :-0
                                              Я только что вытащил около 7000 страниц полезного контента со своего сайта в три клика! Боюсь, конкуренты будут безмерно счастливы обладать таким плагином, теперь они смогут уволить весь штат гастарбайтеров…
                                                0
                                                www.semtech.com.hk/script/Product/MANAGE/products_2_p_trs.asp

                                                Не удалось найти структуры данных :(
                                                  0
                                                  спасибо за пример, очень интересно будет разобраться в причине, так как обычно именно таблицы парсер обрабатывает лучше всего.
                                                    0
                                                    Часто работаю с китайскими ресурсами, там много приколов бывает :)
                                                  0
                                                  Такое тоже не под силу.
                                                    0
                                                    Напишите сразу как против этого бороться.
                                                    У меня регулярно воруют контент вручную скриптами теперь вот еще способ.
                                                      0
                                                      Делайте все на флэше. =)
                                                        +2
                                                        Пользователи спасибо не скажут.
                                                      0
                                                      Попробовал ваш плагин
                                                      В целом штука полезная

                                                      Но экпорт данных не удался
                                                      ок в этом окошке просто открывает главную страницу сайта и запускает видео

                                                      Как только не пробовал — экпорт данных для меня остался за кадром
                                                        0
                                                        Вместо «Не хотите оставить комментарий для этого результата?» лучше использовать надпись «Хотите оставить комментарий для этого результата?». Отрицания лишний раз маркетологи обычно рекомендуют не использовать )
                                                        А по существу — плагин интересный…
                                                          +2
                                                          Стало любопытно, правильно ли я понимаю, что все базируется на частоте упоминания какого либо класса в определенных тега (к примеру, а)? Были ли попытки использовать для анализа нейронные сети?
                                                            +1
                                                            Алгоритм определения элементов для парсинга гораздо сложнее, чем частота упоминания какого-либо класса. Алгоритм ищет похожие структуры, основываясь на большом количестве разнообразных параметров: тегах верстки, классах элементов, содержимом, местоположению в DOM дереве и многим другим. Каждому параметру присвоен некий «вес», и, в целом, принятие решения довольно похоже на нейронную сеть, но, пока, только однослойную :)

                                                            К более плотному использованию, нейронных сетей, скорее всего, придем чуть попозже. А пока больше нечеткой логики :)
                                                            0
                                                            kiddi.com.ua как то странно парсит. Выделяет зеленным меню сайта, а сами товары одним красным блоком выделяет (при щелчке на красный блок все таки товары распарсивает (или распаршивает, как правильно писать надо??).
                                                            Еще один детский магазин shpuntik.com.ua меню не выделяет зеленым (хотя меню списком сделано), а товары выделяет красными блоками и парсит.
                                                              0
                                                              Выделение красным — нормально, даже хорошо. Сейчас правда вообще обновили плагин и цвета, как и весь дизайн, совершенно другой :)
                                                              0
                                                              Вот еще ошибочное распознование
                                                              mic.mobicon.ru/product_info.php?cPath=242_243_745_749&products_id=2259
                                                                0
                                                                «Эффект лесенки», никак не можем его победить. Спасибо за хороший пример, исправим ;)
                                                                0
                                                                Вот уже бородатая подобная реализация но в особом контексте www.polyvore.com/cgi/clipper

                                                                Only users with full accounts can post comments. Log in, please.