âDêšwu öBipci
Tishka17
def do(parser, loader):
connection = poll.get_connection()
data = loader(connection)
return parser(data)
Tishka17
âDêšwu öBipci
âDêšwu öBipci
Avonar
Alex
код заливать не нужно
Tishka17
Tishka17
в смысле?
Tishka17
пусть в базе будут только новые
Tishka17
ну или условие сделай какое-то
âDêšwu öBipci
Так старые тоже нужно хранить, отдавать же все нужно.
Tishka17
SELECT * from TASKS WHERE not is_finished LIMIT 1
âDêšwu öBipci
То есть хранить ещё и задачи в базе?
Tishka17
блин
Tishka17
я без понятия что у тебя там уже хранится
âDêšwu öBipci
Tishka17
звучало как будто у тебя в БД есть задачи с доп.данными
Tishka17
задачи, данные.. какая разница?
Tishka17
если эти данные которые надо распарсить - это уже задача
—𝕤𝓉𝒶𝕤—
Всем привет, кто знает быстрый, мощный парсер данных с сайтов? Или, подскажите способ быстро собрать нужные URL сайтов. Нужно быстрее чем типа софтом ScreamingFrog
Alex
1) это не ответ на вопрос как
конкретно в случае тревиса это звисит от провайдера. код заливать он тоже умеет.
но в общем случае нормальные люди собирают билд артефакты и деплоят их.
âDêšwu öBipci
Вот у меня есть входные данные - поле "номер".
По этому полю парсер может выдать поле "имя".
По нему - поле "сайт".
По полю "сайт" снова может в числе прочей информации выдать "номер", но уже с другим значением. Его тоже нужно записать и по нему ещё раз все пройти...
âDêšwu öBipci
И так пока новых уникальных данных не останется.
Pavel
ты базу знаний какую-то строишь, что ли?
âDêšwu öBipci
Да
âDêšwu öBipci
И сроки поджимают, уже парсеры надо вовсю писать, а я застрял на этом раскидывателе данных по ним
âDêšwu öBipci
И не соображаю уже ничерта
Yar
Так, ребята, коллеги, я совсем запутался в проекте. Нужен свежий взгляд на архитектуру.
Пользователь вводит несколько полей данных. Поля сразу кладутся в базу.
Есть несколько парсеров. Парсеры в отдельных модулях. Парсеры синхронные. Код их запускающий - асинхронный.
Парсеры принимают на вход одно поле из базы и некоторые из них принимают ещё дополнительные поля из других таблиц. В ответ выдают другие поля, из пераой таблицы. Задача - по нескольким полям от юзера спарсить сколько возможно данных на заполнение таблицы и потом юзеру все отдать.
По первоначальным данным получаем другие, и их снова нужно в другие парсеры загонять как входные. И так пока таблица не заполнится насколько возможно.
Делаю так - все первоначальные поля кладу в словарь, запускаю цикл while, пока словарь не пустой - беру из него по очереди все поля, отдаю во все парсеры что его принимают, удаляю поле из словаря. Если возвращенные парсерами поля в словаре ещё не присутствуют, добавляю их туда. Парсеры запускаю через run_in_executor. Проблема в том, что некоторым из парсеров нужны доп.данные из базы, из других таблиц, и я не знаю как в этом цикле их туда пробрасывать.
Еще - данные в возвращенных полях могут не совпадать от разных парсеров и с теми, что уже лежат в входных данных, т.е не уникальные значения. Нужно писать в связанные с основной таблицы, записывать все. Пока что ничего не получается из этой схемы построить.
Схемы! Дайте схемы!
foxfix
Кто работал с hasura? Стек flask, react, graphql, postgreql. Если не ошибаюсь, hasura позволяет сразу делать graphql запросы напрямую в бд без посредников в виде бека? Нужен ли ендпойнт на фласке для graphql или с hasura можно обойтись без него?
âDêšwu öBipci
Сейчас попробую нарисовать схему
Yar
Андрей
Vladyslav 🇺🇦🇪🇺
Pavel
"хасура графкуель" написана на хаскеле. удачи в отладке, в случае чего.
foxfix
Spirit
Vladyslav 🇺🇦🇪🇺
что я пропустил? разве графу нужны эндпоинты?
Tishka17
Vladyslav 🇺🇦🇪🇺
разве графу не нужен бек, который принимает граф обьект, парсит его и создает запрос?
Vladyslav 🇺🇦🇪🇺
куда тут эндпоинты?
Vladyslav 🇺🇦🇪🇺
или вы хотите сказать, что вы объеденили граф с рестом?
âDêšwu öBipci
Spirit
Vladyslav 🇺🇦🇪🇺
Негодяи
?
зачем юзать и то и то
Vladyslav 🇺🇦🇪🇺
или граф объекты передаете через рест?
âDêšwu öBipci
А как и где тогда данные хранить/писать в базу
Что, парсер сам должен после отработки записать в базу и поставить новую задачу?
Spirit
âDêšwu öBipci
Vladyslav 🇺🇦🇪🇺
окей, теперь еще раз вопрос
Vladyslav 🇺🇦🇪🇺
?
foxfix
Походу, пока описывала, уже поняла ) спасибо
Vladyslav 🇺🇦🇪🇺
зачем тут hasura 🤷♂️
Vladyslav 🇺🇦🇪🇺
у вас бек на питоне
Vladyslav 🇺🇦🇪🇺
foxfix
зачем тут hasura 🤷♂️
Hasura будет. Это есть в архитектуре, потому и хотела сама понять к чему она? Ибо не вижу пока куда и как ее применять. Спросить было не у кого ))
Vladyslav 🇺🇦🇪🇺
получается, вместо того, чтобы общаться вот так graphql -> graphne -> python -> db
вы хотите куда то в эту цепочку воткнуть еще либу написанную на хаскеле
Pavel
foxfix
âDêšwu öBipci
Tishka17
Tishka17
я откуда знаю
âDêšwu öBipci
там же где и ставишь
А что с новыми данными? Я сейчас ставлю один раз на входные
А выходные-то потом тоже нужно прогнать, а нам неизвестно ещё когда и что там придёт
Vladyslav 🇺🇦🇪🇺
но это не панацея
Vladyslav 🇺🇦🇪🇺
и то
Vladyslav 🇺🇦🇪🇺
кто вообще пишет бек веба на хаскеле
âDêšwu öBipci
Теперь у меня ощущение что все понимают что надо делать и только один я нет