Парсинг страницы с использование бан листа

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Здравствуйте господа. Хочу состряпать простенького бота и хотелось бы спросить вашего совета, как лучше реализовать следующую задачу.

Есть сайт торговой площадки. У этого сайта есть страница, на которую выводятся все новые лоты.
Обновил страницу - увидел новые лоты. Обновил еще ра- еще раз увидел. Т.е. автоматического обновления этой страницы на сайте нет.

Все позиции представлены следующем образом.

название лота -> его изображение -> цена
Позиции идут одна за одной.
Фактически структура страницы напоминает выдачу ebai

Т.е. я могу спарсить по регулярным выражениям все товары и выбрать их названия.

Вот тут у меня и возникает проблема. Нужно сделать так, чтобы бот игнорировал определенные предметы.

Я планирую составить список вещей, которые бот должен игнорировать, но их будет много. Больше 50 точно.
Сверять каждую строчку из списка на странице со списком предметов из бан листа мне кажется очень долго и не особо эффективно, так как шаблон начнет тормозить через некоторое время.

Может есть какие-то другие способы решения этой задачи или просто проверять на наличие соответствий позиции на странице на позициям в бан листе и в зависимости от ответа принимать решения?

(у меня текущая версия программы 5,4. Если задачу можно решить только в более поздних версиях, то значица буду обновляться)
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Поищите на форуме сравнение списков. Ваша задача решается перебором списков во вложенном цикле, если реализовывать через экшены. На сишарпе решение более изящное.
 

runlike

Client
Регистрация
22.09.2015
Сообщения
175
Благодарностей
51
Баллы
28
Самое простое, что приходит в голову -
создаем список (бан лист)
объединяем элементы в переменную
Берем спаршенное слово и проверяем наличие в переменной

И да , это не так уж долго и не так уж ресурсозатратно, по крайней мере в моих шаблонах
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Самое простое, что приходит в голову -
создаем список (бан лист)
объединяем элементы в переменную
Берем спаршенное слово и проверяем наличие в переменной

И да , это не так уж долго и не так уж ресурсозатратно, по крайней мере в моих шаблонах
Вполне подойдет, если стоп лист не на десятки тысяч)
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Поищите на форуме сравнение списков. Ваша задача решается перебором списков во вложенном цикле, если реализовывать через экшены. На сишарпе решение более изящное.
Мне перебор не подходит, ибо нефиг 35 значений со списком из 500 значений сравнивать

Самое простое, что приходит в голову -
создаем список (бан лист)
объединяем элементы в переменную
Берем спаршенное слово и проверяем наличие в переменной
Вполне подойдет, если стоп лист не на десятки тысяч)
Список маленький, поэтому тоже думал о именно о подобном решении, но решил уточнить на форуме. Может в новых релизах добавили какую-то функцию типа "поиск совпадений со списком". Ну или что-то в этом виде. Типа логическую проверку с результатом да/нет.
А так придется лишнее действие делать проверяя есть ли что-то в результате парсинга или он пустую строку вернул
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Господа, у меня вновь возник вопрос.

А можно как-то сравнивать содержимое 2х списков и удалять повторы, есть они уже присутствуют во втором списке.

В списке 1 есть значения
А1, А2, А3
В списке 2 есть значения
А1, А2, А3, А4

Как лучше сделать чтобы список 2 сравнило со списком 1 и оставило только А4? Кроме тоже нужно чтобы учитывалось значение списка то.
Т.е. если что-то есть в списке 2, то это записывалось, но если что-то есть в списке 1, но нет в списке 2, то это значение игнорировалось бы
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)