фиолетовый бобер
2 103
Блоги

Генератор комментариев из Аляски

В этой статье вы увидите процесс создания бредогенератора, основанного на комментариях из раздела TJ, куда полезные и интересные статьи не попадают никогда - из Аляски. И, конечно, на цепях Маркова.

Поделиться

В избранное

В избранном

запили Крымской мадерой. На столе приятные закуски, во главе пирог с листьями свеклы. Мы поковыряли его вилками и Я шепчу тебе байки в голове, взгляни на этот макет как-бы со стороны, не будет. Просто смоделируй эту ситуацию коммент отличный. Сук кек. Это Moscow City Racing, кажется, самый первый, 2009 года (покатушки разных гоночных машин вокруг кремля), лужайка шее. Вопроса называл. Но где же твоя лексическая редупликация? Так изысканно Илюхера пидором еще никто дублировать друг друга. Представь: ты чтобы вам было,

Бредогенератор

Программу я написал на Python 3.6, если что, прошу не кидаться камнями за говнокод, я джуниор.

Начать разработку я решил когда узнал об отсутствии подобной программы. ̶ ̶М̶н̶е̶ ̶б̶ы̶л̶о̶ ̶и̶н̶т̶е̶р̶е̶с̶н̶о̶,̶ ̶н̶а̶с̶к̶о̶л̶ь̶к̶о̶ ̶п̶о̶т̶у̶г̶и̶ ̶с̶р̶е̶д̶н̶е̶с̶т̶а̶т̶и̶с̶т̶и̶ч̶е̶с̶к̶о̶г̶о̶ ̶к̶о̶м̶м̶е̶н̶т̶а̶т̶о̶р̶а̶ ̶А̶л̶я̶с̶к̶и̶ ̶о̶т̶л̶и̶ч̶а̶ю̶т̶с̶я̶ ̶о̶т̶ ̶т̶о̶г̶о̶,̶ ̶ч̶т̶о̶ ̶м̶о̶ж̶е̶т̶ ̶с̶о̶з̶д̶а̶т̶ь̶ ̶к̶о̶м̶п̶ь̶ю̶т̶е̶р̶ Прежде всего моей целью было создать парсер комментариев с TJ (небольшой спойлер - я его так и не создал). Так же я, конечно, хотел насладиться результатом.

Начало

Создавать генератор я решил на цепях Маркова. Объяснять что это и как это едят я не буду, если что - google it. Моей первой проблемой было написать генератор этих самых цепей, по этому я просто взял скрипт у того, кто его уже написал.

Код цепей Маркова, ссылка

Дальше с использованием функций этого скрипта я написал свой небольшой скрипт и составил тестовую библиотеку слов.

Видите шутку? А она есть

Краткое описание того, что он делает: импортирует необходимые библиотеки и библиотеку слов; при помощи скрипта, о котором я уже сказал, создает цепь; выводит ее в консоль.

Моей первой проблемой была ошибка, при которой цепь не создавалась (вероятно, из-за небольшого количества слов в библиотеке). Я не хотел сильно морочить себе голову, по этому решил все при помощи силы волшебного костыля.

Тут я добавил костыль с while

Таким образом текст пытался сгенерироваться пока подлая ошибка не сдавалась. А потом я внезапно вспомнил про то, что пустой эксепт это плохо и сделал вот так.

Эксепт больше не пустой.

Провал парсера

Теперь я приступил к сложной части программы - к парсеру комментариев на TJ. Делать я его решил при помощи API. Но тут меня ждал неожиданный сюрприз - при любом обращении к API оно выдавало одну и ту же ошибку.

{"error": {"code": 426,"message": "426", "info":[]}, "code": 426, "message": "Please upgrade your app. Developer? Email us: support@cmtt.ru"}

Ехидное API

Я попытался обратиться по указанному адресу, но мне уже день пятый (upd: если точно, то седьмой) так никто и не ответил. Обидно.

Выхода из ситуации я не увидел, по этому решил пока обойтись временной библиотекой, которую я руками накопировал из комментариев к какой-то статье.

Результаты

Просто вставлю несколько результатов работы программы.

лужайка на этот коммент отличный. Сук кек. Это Moscow City

Арчи. На созвоне Так ждала ее, хотя этот коммент отличный. Сук кек.

Илюхера пидором еще никто не будет. Просто смоделируй эту ситуацию в приятное место

Как вы можете увидеть, результат не идеальный, но на то это и цепи Маркова. Так же я добился не всего, что хотел, потому что не смог сделать парсер. Надеюсь, после этой статьи мне ответят, а пока хатико.жпг и довольствуемся тем, что есть. Вполне возможно, создам новую статью, когда получу доступ к API и напишу парсер. Ну и на десерт ссылка на сотню сгенерированных комментариев.

Увидимся.

#технологии потому что хочу поставить хэштеги, но не знаю, какие

{ "author_name": "фиолетовый бобер ", "author_type": "self", "tags": ["\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438"], "comments": 67, "likes": 25, "favorites": 9, "is_advertisement": false, "section_name": "blog", "id": "68724", "is_wide": "" }
Популярные материалы
Показать еще
{ "is_needs_advanced_access": true }

Популярные комментарии

Дискуссии по теме
доступны только владельцам клубного аккаунта

Купить за 75₽
Авторизоваться

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность писать комментарии и статьи
  • общение с членами клуба
Подробнее

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность читать и писать комментарии
  • общение с членами клуба
  • возможность создавать записи

Сколько это стоит?

Членство в клубе стоит всего 75₽ в месяц. Или даже дешевле при оплате за год.

Что такое клуб?

Клуб ТЖ это сообщество единомышленников. Мы любим читать новости, любим писать статьи, любим общаться друг с другом.

Вступить в клуб

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Вы не против подписаться на важные новости от TJ?

Нет, не против
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byswn", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223677-0", "render_to": "inpage_VI-223677-0-130073047", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=cndo&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudv", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvc" } } } ]