|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Только наладил загрузку наименований товара с сайта barcode-list. ru , как он перестал работать. Поиск альтернативы привел на сайт ru.disai. org . Огромная база данных, но только сайт имеет защиту от парсинга. Перепробовав массу вариантов остановился на следующем способе (пример прикреплен). Страничка открывается в IE с заданным штрих-кодом и программно нажимается кнопка поиска. После этого сайт "подтягивает" наименования и Access копирует страничку с нужными данными в текстовый документ. Проблема возникла с выполнением команды нажатия кнопки поиска (id="search-form"). Автоматически команда Clik не срабатывает, но если в процессе выполнения процедуры нажать эту кнопку вручную, то все прекрасно сохраняется. Суть вопроса: как можно из под Access найти и запустить выполнение скритпа для этой кнопки. И можно ли вообще это сделать? Код: html 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 12:17 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Разобрался) Надо было это добавить: IE.Document.getElementById("search-form").submit IE.Document.getElementById("search-form").Click Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 12:57 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманТолько наладил загрузку наименований товара с сайта barcode-list. ru , как он перестал работать. -все бесплатное умирает... -альтернатива местами похожа на помойку, по крайней мере нет наиболее приемлемого варианта как был на первом сайте... - попробуй два штрих-кода 4601593001540 и 4607131043928, в первом случае названия включают скидку того магазина, который этот штрих-код туда забульбенил, во втором одно полное название из двух слов разбито на два названия... - но поиск работает, это плюс, у меня тоже кое-что было завязано на первый сайт... - до завтра переделаю, если дашь мыло в мое мыло, сброшу оконечный парсинг вариантов в список на форму, ну это если сам уже не сделал... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 17:02 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
vmag-все бесплатное умирает... эт точно,проверено неоднократно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 17:14 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
vmag- до завтра переделаю, если дашь мыло в мое мыло, сброшу оконечный парсинг вариантов в список на форму, ну это если сам уже не сделал... Спасибо за предложенную помощь, но у меня уже все настроено. Надо было только источники данных заменить. Тестируя эту базу штрих-кодов столкнулся с еще одним "косячком". Например для штрих-кода 8590232000050 выдает не построчный ответ, а общий список AC/COLGATE З/Щ КЛАССИКА PLUS СРЕДНЯЯ, АС/COLGATE З/Щ КЛАССИКА PLUS СРЕДНЯЯ, З/щ "Колгейт" Плюс средняя, З/щ COLGATE Классика плюс средняя, З/Щ Колгейт Классика Плюс Средняя, З/ЩЕТКА COLGATE ПЛЮС (сред/жест), З/ЩЕТКА COLGATE ПЛЮС МЕДИУМ, З/ЩЕТКА КЛАССИКА ПЛЮС СР ЖЕСТКОСТИ COLGATE, З/щётка Колгейт Классика плюс/ Мягкая/Средняя, Зуб щетка Колгейт Клас плюс ср жест, Зуб щетка Колгейт Классика плюс, ЗУБ. ЩЕТКА "COLGATE" PLUS MEDIUM, Зуб.щетка COLGATE Плюс средняя 20609/50306, Зуб.щётка Колгейт Классика Здоровья, Зуб.щетка Колгейт Классика плюс, Зуб/щетка "Колгейт" средняя, ЗУБ/ЩЕТКА COLGATE КЛАССИКА ЗДОРОВЬЯ СРЕДНЯЯ , ЗУБН.ЩЕТКА КОЛГЕЙТ ПЛЮС СРЕДНЕЙ ЖЕСТ. , ЗУБНАЯ ЩЕТКА "COLGATE" КЛАССИКА ЗДОРОВЬЯ СРЕДНЕЙ ЖЕСТКОСТИ 1ШТ., Зубная щетка "Колгейт" Классика Плюс средн , Зубная щетка "Колгейт" Классика Плюс средней жесткости Россия 1/72, ЗУБНАЯ ЩЕТКА COLGATE КЛАССИКА PLUS СРЕДНЯЯ, ЗУБНАЯ ЩЁТКА COLGATE КЛАССИКА ПЛЮС СРЕДНЕЙ ЖЕСТКОСТИ, Зубная щетка Colgate Классика плюс средняя, Зубная щетка Colgate классическая средняя жесткость, ЗУБНАЯ ЩЕТКА КОЛГЕЙТ КЛАССИКА ЗДОРОВЬЯ СР, ЗУБНАЯ ЩЕТКА КОЛГЕЙТ КЛАССИКА ПЛЮС/КЛАССИКА ЗДОРОВЬЯ СРЕДНЯЯ, Зубная щетка Колгейт Классика средняя, Зубная щетка Колгейт классическая средняя жесткость, Зубная щетка Колгейт плюс - средней жесткости - 1 шт, ЗУБНАЯ ЩЕТКА КОЛГЕЙТ ПЛЮС МЕДИУМ , Зубная щетка Колгейт Плюс средняя 1 шт, КОЛГЕЙТ З/ЩЕТКА ПЛЮС средняя (Срок не ограничен) *12 , ЩЕТКА ЗУБНАЯ "COLGATE" КЛАССИКА (СРЕДНЕЙ ЖЕСТКОСТИ), ЩЕТКА ЗУБНАЯ "COLGATE" КЛАССИКА ЗДОР. СРЕД. ЖЕСТ. , Щетка зубная "COLGATE" КЛАССИКА ПЛЮС (средняя) а/п 20609/72, Щетка зубная Colgate Plus классика средняя, ЩЕТКА ЗУБНАЯ КОЛГЕЙТ ПЛЮС МЕДИУМ КИТАЙ, Зубная щетка Colgate Классика Плюс средняя 1/72*12, ЗУБ ЩЕТКА КОЛГЕЙТ КЛАССИКА ЗДОРОВЬЯ (КОЛГЕЙТ САНКШАО) , Зубн. щетка Колгейт Классика плюс средняя 1шт, ЗУБ ЩЕТКА КОЛГЕЙТ КЛАССИКА ПЛЮС (КОЛГЕЙТ САНКШАО) , ЩЕТКА ЗУБНАЯ "КОЛГЕЙТ" КЛАССИКА ЗДОРОВЬЯ сред.жест., З/ЩЕТКА КОЛГЕЙТ ПЛЮС МЕДИУМ, Зубная щетка Колгейт Классика Плюс средней жесткости Россия 1/72, ЗУБ ЩЕТКА КОЛГЕЙТ КЛАССИКА ЗДОРОВЬЯ (КОЛГЕЙТ-ПАЛМОЛИВ) Есть какие либо варианты обработки подобной информации? Можно конечно в спецификации импорта указать разделитель полей "запятую", но есть вероятность что этот символ попадет в наименовании (Кока-Кола 0,33) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 10:20 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманЕсть какие либо варианты обработки подобной информации? Ну, это можно отнести с натягом к исключениям, к тому же возможно кто-то добавит в разделители #, @ или еще что... Я бы делал так: 1. Вываливал бы всё в список на форму (это по идее уже реализовано и в данном случае это одна строка). 2. При выборе строки списка, значение записывать в поле на форму для редактирования. 3. При стандартной ситуации, дальнейших действий не требуется, а при подобных коллизиях пользователь может убрать лишнее руками. Промежуточное поле возможно будет полезным и при стандартных ситуациях, например пользователь захочет сократить найденное или видит его по другому... тут то главное не набирать весь текст руками... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 14:12 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Шаман, мне первый ресурс больше нравился, я оттуда брал только то название, которое рекомендовали модераторы (варианты даже не рассматривал), оно было самым коротким, общим и лаконичным, здесь похоже нет ни модераторов ни простейших фильтров на прием штрих-кодов, любой зарегистрировавшийся может залить туда свой магазин полностью... туда попадают даже даже внутренние штрих-коды, посмотри 0000000000017, 0000000000024 - вип скидка Дудочкина 10 %... Так что думаю, промежуточное поле для само модерации - точно не помешает... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 14:26 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Шаман, Вот тут есть решение косячка и ему подобных... Записываешь результат в список и смотришь сколько строк в списе, если одна, то скорее всего косячок... Не претендую на идеальное решение, просто решение в лоб, от которого можно оттолкнуться... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 16:00 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
vmag , СПАСИБО за совет. Твой пример более мобильный чем моя обработка, но ход мыслей в общем совпал. Я вырезал и перезаписал текстовик, а потом импортировал в таблицу базы данных через запрос, где фильтровал пустые строки. В общем как классический шаман, вместо того что бы сказать что завтра будет дождь, сначала исполнил ритуальный танец с бубном) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
К стати, раз уж зашла такая тема, есть еще сайт с хорошей базой штрих-кодов ratengoods. com/search/?page=1&type=product&lang=ru&query=8590232000050 Для получения информации надо вытянуть ссылку ratengoods. com/goods /6379047/ 8590232000050 Она есть, но способ, рассмотренным в начале топика не прокатывает. Правда я еще этот сайт особо и не изучал. Код: html 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 18:12 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманМожно конечно в спецификации импорта указать разделитель полей "запятую", но есть вероятность что этот символ попадет в наименовании (Кока-Кола 0,33) В данном примере можно использовать запятую и после нее пробел. Это в данном . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 19:08 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
DarkManВ данном примере можно использовать запятую и после нее пробел. Это в данном . Да, именно по этому принципу я и пошел Replace(Mid(tov, (InStr(tov, "СистемаШтрих код") + 16)), ", ", "" & Chr(13) + Chr(10) & "") ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 19:17 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманТвой пример более мобильный чем моя обработка, но ход мыслей в общем совпал. на самом деле там фишка в другом - дерготня по штрих-коду не затрагивает таблицы БД, только отвязанный список в форме, следовательно файл БД по напрасну не пухнет, прикинь - ты каждый раз пишешь в таблицу мусор, потом ее чистишь... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 19:45 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
vmag, не глянул, что ты через файлы выкрутился, думал реально в таблицы пишешь... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 19:48 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Выкладываю практически готовый поисковик 2в1. Вплотную не тестировал, так что возможны баги. Реализован поиск сначала по сайту ratengoods. com, а если товар не найден, то по ru.disai. org. За основу использовал пример, предложенный vmag (за что ему ОГРОМНОЕ СПАСИБО!!!) Найти ссылку на сайте ratengoods. com на полное описание товара не удалось, поэтому ограничился кратким его описанием. Остался невыясненным только один вопрос. Для дальнейшей обработки данных мне необходимо сохранить результат поиска с таблицу. Вот в этом фрагменте: Код: vbnet 1. 2. 3. 4.
несколько строк из переменной копируются в таблицу ШтрихКоды в одну строку с переносами (кнопка Пример2), а надо что бы построчно. Как это можно исправить? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 12:57 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманОстался невыясненным только один вопрос. Для дальнейшей обработки данных мне необходимо сохранить результат поиска с таблицу. Какой у тебя общий алгоритм задачи? Зачем писать всё? У меня бы был алгоритм такой: 1. Найти по штрих-коду варианты названий из источника № 1 и показать их в списке. 2. Записать в БД выбранный вариант ( один единственный ) пользователем. 3. Конец задачи. 4. Если пункт 1 не сработал, найти по штрих-коду варианты названий с источника № 2 и показать их в списке. 5. Записать в БД выбранный вариант ( один единственный ) пользователем. 6. Конец задачи. Это основной алгоритм, в котором могут быть вариации: - например искать сразу и там и там, показывать в списке общий результат, но писать в БД только одно значение, выбранное пользователем (только нужно ли это, времени больше уходит на поиск). - после выбора значения пользователем, вместе со значением писать в БД номер источника для анализа продуктивности (с каким источником наиболее совпадает тематика фирмы - парфюм, запчасти, продукты и т.д.). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 15:30 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
Шаманнесколько строк из переменной копируются в таблицу ШтрихКоды в одну строку с переносами (кнопка Пример2), а надо что бы построчно. Как это можно исправить? Если честно , то я ничего не понял из вышесказанного , наверное был в танке . Но судя из вчерашнего примера Вы сайта получаете данные в виде одной большой строки. А Вам нужно разбить на строки по разделителю запятая с пробелом , и каждую строку занести в таблицу . Я правильно понял ? Или я опять в танке.??? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 17:26 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
По сути, требуемая задача выполнена на 100%. Пикнули код, проверили по первой базе. Если есть, добавляем в базу. Если нет, то ищем во второй. Если нашли во второй, то получаем список значений и одно из них (наиболее подходящее) выбираем для записи в базу. Не нашли во второй базе, предлагаем пользователю ввести наименование ручками. Вот собственно и весь мой алгоритм. Дублирование в таблицу БД, это просто спортивный интерес. Вдруг где то в дальнейшем потребуется ) На этом собственно всё. Прикрепляю финальную базу (без экспериментов). P.S. vmag еще раз благодарю за содействие. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 17:46 |
|
Парсинг защищенного сайта (поиск товара по штрих-коду)
|
|||
---|---|---|---|
#18+
ШаманP.S. vmag еще раз благодарю за содействие. Удачи! Тебе тоже спасибо! Многие вроде шарят в акесе, а шаг влево/вправо и уже приплыли, влез в HTML - молодец... Если б ты эту тему не поднял, я б возможно не скоро узнал, что у меня че-то не работает... В этом примере твой алгоритм + дополнительные бонусы (менять старые названия, учет из какого источника) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 18:30 |
|
|
start [/forum/topic.php?fid=45&msg=39678491&tid=1611292]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 164ms |
0 / 0 |