توسعهدهنده موبایل و علاقهمند به خوندن و نوشتن
تکنولوجیا! چطوری میشه از لیست کنسرتها باخبر شد؟
در حال گشتوگذار توی ایکس بودم که متوجه شدم ظاهرا علیرضا قربانی کنسرتش رو تمدید کرده. کنجکاو شدم که ببینم وضعیت بلیطفروشی چطوره. وارد سایت شدم و مطابق انتظار بلیط خاصی باقی نمونده بود. تک و توک صندلی خالی توی ردیفهای آخر پیدا میشد که داشتند یکی یکی تیر خلاص میخوردند. برام سوال شد که مردم چطور متوجه بلیطفروشی کنسرتهای معروف میشن و انقد سریع همهی بلیطها رو میخرند.
قاعدتا بیشتر اطلاعرسانیها از طریق شبکههای اجتماعی خوانندهها انجام میشه و باید خوانندههای موردعلاقهت رو دنبال کنی تا بفهمی چه زمانی و کجا کنسرت دارند. منتهی من که اینستاگرام ندارم باید چیکار کنم؟
چند وقتی هست که وقت آزاد بیشتری دارم و دنبال ایدههایی هستم که بشه تکنفره پیادهسازی کرد. در نتیجه ایدهی ساخت یه راهکاری برای باخبرشدن از کنسرتها به سرم زد. اولین و سادهترین راهی که به ذهنم رسید این بود که سایتهای فروش بلیط رو هر چند وقت یه بار چک کنم و لیست کنسرتهای فعال رو به دست بیارم. البته قاعدتا این کار نباید دستی انجام بشه و باید یه ابزاری بسازم که این کار رو به صورت خودکار انجام بده.
یادم افتاد که جادی هفتهی پیش یه ویدیو در مورد همین ابزار ساخته بود. ابزاری به اسم n8n که بدون زحمت خاصی میتونست یه سری کارهای تکراری رو انجام بده و در نهایت یه خروجی بهمون بده. گفتم برم یه سری به ویدیو بزنم ببینم چه خبره. جادی هم مثل من زیاد حال و حوصلهی توضیح نداشت. خیلی ساده گفت چنین ابزاری هست و میشه باهاش این کارا رو کرد و یه مثال هم زد. روی سرور شخصی خودم که برای دورزدن تحریمها (آره) ازش استفاده میکنم، این ابزار رو نصب کردم و یه کم باهاش ور رفتم.
خروجی این ور رفتن کوتاه، تصویر زیر شد:

عملیات استخراج لیست کنسرتها، همونطور که میبینید، شامل چند مرحله بود:
الف) دریافت دادهها
ب) پردازش دادهها
پ) ارسال اطلاعات
دریافت داده
توی این مرحله باید لیستی از سایتهای فروش کنسرت رو پیدا کنیم که با یه سرچ ساده پیدا میشه.
بعد این لیست رو میدیم به n8n و میگیم که هر چند دقیقه یا هر چند ساعت یکبار، متن این سایتها رو دانلود کن.
خروجی مرحلهی اول چنین چیزی هست:

پردازش دادهها
بعد از این که کد HTML سایت مدنظر رو دانلود کردیم، نوبت به پردازش دادهها میرسه. پردازش دادهها شامل سه مرحله هست که البته میتونه بیشتر یا کمتر هم باشه.
توی مرحلهی اول من اومدم و اطلاعات اضافی رو که دانلود کرده بودیم، حذف کردم. مثلا وقتی شما یه سایت فروش بلیط رو باز میکنید، به جز لیست کنسرتها، هزار و یک اطلاعات اضافی هم نمایش داده میشه که باید اونها رو نادیده بگیرید. من با تگهای css فقط متن اون بخشهایی از صفحه رو که لازم داشتم، انتخاب کردم.
خروجی مرحله اول پردازش چنین چیزیه:

از اون کدهای زیاد و شلوغ HTML به چنین متنی رسیدیم که تقریبا لیست کنسرتها رو میشه داخلش با یه نظمی دید.
توی مرحلهی دوم، لازمه متن خام رو تبدیل به یه جدول ساختاریافته بکنیم. به خاطر این که این متن خام خوانا نیست و اطلاعات اضافی زیادی هم توش هست. اینجا نیاز به برنامهنویسی هست و چون من به جاوا اسکریپت مسلط نیستم کافیه از هوش مصنوعی کمک بخوام. در نتیجه متن خام رو به ChatGPT دادم و ازش خواستم با یه کد جاوااسکریپت تبدیلش کنه به یه فایل جیسون که تاریخ و عنوان هر کنسرت رو به شکل ساختاریافته بهم بده.

خروجی این مرحله هم چنین چیزی شدش که خیلی فوقالعاده نیست ولی کافیه و داره لیست کنسرتها رو با یه ترتیبی بهم میده.
توی مرحله سوم هم باید این لیست رو تبدیل به یه پیام یا گزارش کرد که قابل ارسال باشه. با یه کد جاوااسکریپت ساده ردیفهای جدول رو به هم چسبوندم و با اینتر جدا کردم تا بشه توی یه پیام ارسالش کرد.

به این ترتیب یه پیام آماده داریم که میشه ایمیلش کرد یا به تلگرام و اینطور جاها فرستاد یا داخل یه اپلیکیشن نمایشش داد. در نتیجه اطلاعات آمادهی ارسال هستند.
ارسال اطلاعات
توی مرحلهی آخر هم لازمه که اطلاعاتی که بهدست اومده رو بفرستیم به جایی که دوست داریم. من تلگرامو دوست دارم به خاطر همین وصلش کردم به تلگرامم تا گزارش رو برام هر روز بفرسته.
برای ارسال به تلگرام هم n8n تقریبا همهی کارها رو میکنه و فقط کافیه یه ربات تلگرام بسازید و توکنش رو بدید به n8n تا از طریق ربات، گزارش رو براتون ارسال کنه.

در نهایت چنین پیامی توی تلگرام ارسال میشه که خیلی محتوای بهدردنخوری هم داره و متوجه میشید چرا کنسرتهای قربانی سریع فروش میره.
نکتهی پایانی
در حالت عادی من هرگز حال و حوصلهی چنین کاری رو نداشتم و اگر هم داشتم، بلد نبودم که انجامش بدم. منتهی با استفاده از n8n، YouTube و ChatGPT زیر دو ساعت هم خود ابزار رو یاد گرفتم و هم تونستم ایدهای که داشتم رو اجرا کنم. در گذشته صرفا همین ارسال پیام به تلگرامش میتونست دلیل کافی برای شکستخوردن پروژه باشه.
در نتیجه هوش مصنوعی و نرمافزارها حداقل در زمان حال لولو نیستند و برای کمک به انسانها ساختهشدن.
اینم از کاور پست که جناب لولو بر اساس متن پست تولید کردن:

مطلبی دیگر از این انتشارات
چرا همه چی قشنگه ولی هیچی قشنگ نیست؟!
مطلبی دیگر از این انتشارات
بعضی وقتا هم کپیکردن جواب نیست.
مطلبی دیگر از این انتشارات
داستان یک کلک رشتی؛ چطور زدم آهنگ بعد!