Можно. Можно и файл и «текст определенный искать» (кстати, в Гугле именно текст в кавычках - это поиск с обязательным включением строки). Все, что вы спросили - можно искать. Если удастся обратиться к корневой структуре сайта, можно и «определённые папки».
Как было сказано выше - Python
>>Если искать разработчика, то сколько такое будет стоить и как правильно поставить ему задачу?
ту важно многое: как часто будет опрашиваться соцсеть, кто будет хостить сервис, нужна ли вашему сервису веб-мордочка или справитесь голым питоном, требуется ли что-то кастомное, будетли код оставаться у исполнителя или полностью принадлежать вам. Т.е. все может с 10к легко вырасти до 100к-150к
во-первых, действительно, вам нужно решить NER-задачу, то есть достать из строки названия. Такое умеет, например, библиотека Natasha (ссылка на гитхаб).
Потом, как вариант, сделать так: если перед объектом стоит "из" - это значит начальный пункт, если "в" - конечный пункт. Но это вторая задача, которая решается не ML, а с помощью подбора лингвистических правил, скорее.
Если усложнять, то стоит посмотреть еще соотношение запросов к временным отметкам. Идея в том, что товары, заказываемые давным-давно менее важны, чем те, которые гуглили недавно
поддержу. не всегда Селениум нужен (да и долго, порой). Поизучайте сначала то, как сервер отдает контент (или приложите ссылку сервиса). Порой, нужно просто покопаться в том, как уходят запросы и как они возвращаются. И никакой Селениум не нужен.
Поддержу пользователя @Sergei1337
вот тут у вас: text = href.find_all('span', class_='text')
получается список. и поэтому выбрать текст, который там есть, можно циклом:
Сходу пандас так не умеет.
Я бы добавил столбец, в котором записывал бы флаг "1/0" и для "старых" данных устанавливал бы флаг 1, для новых - функция бы возвращала 0
И тогда вам достаточно применить фильтр по последнему столбцу
после пересчета поменять флаг на 1
UPD: вариант "хранить копию и измененную таблицу сравнивать с копией" не рассматриваем ввиду ваших "тяжелых" рассчетов (порой, реально в память не помещается)