بش کا استعمال کرتے ہوئے سبریڈیٹ سے عنوانات کی فہرست کو کس طرح ختم کرنا ہے

Mar 26, 2025
کلاؤڈ اور انٹرنیٹ
فاطماوتی اچمد زینوری / شٹر اسٹاک ڈاٹ کام

ریڈٹ ہر سبڈیڈیٹ کے لئے JSON فیڈ پیش کرتا ہے۔ یہاں باش اسکرپٹ بنانے کا طریقہ ہے جو آپ کو پسند آنے والے کسی بھی سبڈڈیٹ سے پوسٹوں کی فہرست کو ڈاؤن لوڈ اور تجزیہ کرتا ہے۔ یہ صرف ایک چیز ہے جو آپ Reddit's JSON فیڈ کے ساتھ کرسکتے ہیں۔

کرل اور جے کیو کی تنصیب کرنا

ہم استعمال کرنے جارہے ہیں curl ریڈٹٹ اور سے JSON فیڈ لانے کیلئے jq JSON ڈیٹا کی تجزیہ کرنے اور ان فیلڈز کو نکالنے کے جو ہم نتائج سے چاہتے ہیں۔ ان دونوں انحصار کو استعمال کرتے ہوئے انسٹال کریں apt-get اوبنٹو اور دیگر ڈیبیئن پر مبنی لینکس تقسیم پر۔ لینکس کی دیگر تقسیموں پر ، اس کے بجائے اپنی تقسیم کے پیکیج مینجمنٹ ٹول کا استعمال کریں۔

sudo apt-get انسٹال کرل curl

Reddit سے کچھ JSON ڈیٹا لائیں

آئیے دیکھتے ہیں کہ ڈیٹا فیڈ کیسا لگتا ہے۔ استعمال کریں curl سے تازہ ترین پوسٹس لانے کے لئے نرمی سے دلچسپی لینا ذیلی تقسیم:

curl -s -A "reddit کھردنی مثال" https://www.reddit.com/r/MildlyInteresting.json

نوٹ کریں کہ یو آر ایل سے پہلے کس طرح اختیارات استعمال کیے گئے تھے: -s کرل کو خاموش حالت میں چلانے پر مجبور کرتا ہے تاکہ ہمیں کوئی آؤٹ پٹ نظر نہ آئے ، سوائے ریڈڈیٹ سرورز کے ڈیٹا کے۔ اگلا آپشن اور پیرامیٹر جو بعد میں ہے ، -A "reddit کھردنی مثال" ، ایک کسٹم صارف ایجنٹ سٹرنگ متعین کرتا ہے جو Reddit کو ان کے ڈیٹا تک رسائی حاصل کرنے والی خدمت کی شناخت میں مدد کرتا ہے۔ Reddit API سرور صارف ایجنٹ سٹرنگ کی بنیاد پر شرح کی حدود کا اطلاق کرتے ہیں۔ اپنی مرضی کے مطابق قیمت کا تعین کرنا ریڈڈیٹ کو ہماری شرح کی حد کو دوسرے کال کرنے والوں سے دور کرنے کا سبب بنے گا اور اس امکان کو کم کردے گا کہ ہمیں HTTP 429 شرح کی حد سے زیادہ خرابی مل جائے۔

آؤٹ پٹ کو ٹرمینل ونڈو کو پُر کرنا چاہئے اور کچھ اس طرح نظر آنا چاہئے:

آؤٹ پٹ ڈیٹا میں بہت سارے فیلڈز موجود ہیں ، لیکن ہم جس دلچسپی میں دلچسپی رکھتے ہیں وہ عنوان ، پیرملک اور یو آر ایل ہیں۔ آپ Reddit کے API دستاویزات کے صفحے پر اقسام اور ان کے کھیتوں کی ایک مکمل فہرست دیکھ سکتے ہیں۔ ہتتپس://گتحب.کوم/رددت-ارچوے/رددت/وکی/جسون

JSON آؤٹ پٹ سے ڈیٹا نکال رہا ہے

ہم آؤٹ پٹ ڈیٹا سے ٹائٹل ، پرمال لنک ، اور یو آر ایل نکالنا چاہتے ہیں اور اسے ٹیب سے محدود فائل میں محفوظ کرنا چاہتے ہیں۔ ہم ٹیکسٹ پروسیسنگ ٹولز جیسے استعمال کرسکتے ہیں اور اور گرفت ، لیکن ہمارے پاس ہمارے پاس دوسرا ٹول ہے جو JSON ڈیٹا ڈھانچے کو سمجھا جاتا ہے ، جسے کہا جاتا ہے jq . ہماری پہلی کوشش کے ل let ، آؤٹ پٹ کو خوبصورت پرنٹ اور کلر کوڈ کے لئے استعمال کریں۔ ہم پہلے کی طرح ایک ہی کال استعمال کریں گے ، لیکن اس بار آؤٹ پٹ کو پورا کریں گے jq اور JSON ڈیٹا کو تجزیہ اور پرنٹ کرنے کی ہدایت کریں۔

curl -s -A “reddit کھردری مثال” https://www.reddit.com/r/MildlyInteresting.json | jq.

حکم کی پیروی کرنے والی مدت کو نوٹ کریں۔ یہ اظہار آسانی سے ان پٹ کی تجزیہ کرتا ہے اور جیسا ہے اسے پرنٹ کرتا ہے۔ آؤٹ پٹ اچھی طرح فارمیٹڈ اور کلر کوڈڈ لگ رہی ہے۔

آئیے ہم JSON ڈیٹا کی ساخت کا جائزہ لیں جو ہم ریڈ ڈیٹ سے واپس آتے ہیں۔ بنیادی نتیجہ ایک شے ہے جس میں دو خصوصیات ہیں: قسم اور ڈیٹا۔ مؤخر الذکر کے پاس ایک پراپرٹی رکھی گئی ہے بچے ، جس میں اس سبریڈیٹ میں پوسٹس کی ایک صف شامل ہے۔

صف میں موجود ہر آئٹم ایک شے ہے جس میں دو فیلڈز بھی شامل ہیں جن کو قسم اور ڈیٹا کہتے ہیں۔ وہ پراپرٹیز جن پر ہم قبضہ کرنا چاہتے ہیں وہ ڈیٹا آبجیکٹ میں ہیں۔ jq کسی ایسے تاثر کی توقع کرتا ہے جو ان پٹ ڈیٹا پر لاگو ہو اور مطلوبہ آؤٹ پٹ تیار کرے۔ اس میں مندرجات کو ان کے درجہ بندی اور کسی صف میں ممبرشپ کے لحاظ سے بیان کرنا ہوگا ، نیز ڈیٹا کو کس طرح تبدیل کرنا چاہئے۔ آئیے ایک بار پھر پوری کمانڈ کو صحیح اظہار کے ساتھ چلائیں۔

curl -s -A “reddit کھردری مثال” https://www.reddit.com/r/MildlyInteresting.json | jq ‘.ڈیٹا.چیلڈرین | . [] | .data.title، .data.url، .data.permalink ’

آؤٹ پٹ عنوان ، URL ، اور Permalink ہر ایک کو اپنی لائن پر دکھاتا ہے:

آئیے میں ڈوبکی ہیں jq ہم نے حکم دیا:

jq ‘.ڈیٹا.چیلڈرین | . [] | .data.title، .data.url، .data.permalink ’

اس کمانڈ میں تین تاثرات دو پائپ علامتوں سے جدا ہوئے ہیں۔ مزید تشخیص کے لئے ہر اظہار کے نتائج اگلے کو منتقل کردیئے جاتے ہیں۔ پہلا اظہار ریڈڈیٹ لسٹنگ کی صف کو چھوڑ کر ہر چیز کو فلٹر کرتا ہے۔ یہ آؤٹ پٹ دوسرے اظہار میں پائپ ہوتا ہے اور زبردستی ایک صف میں داخل ہوتا ہے۔ تیسرا اظہار صف میں ہر عنصر پر کام کرتا ہے اور تین خصوصیات نکالتا ہے۔ کے بارے میں مزید معلومات jq اور اس کے اظہار نحو کو پایا جاسکتا ہے jq کی سرکاری دستی .

اسکرپٹ میں سب کو ساتھ رکھنا

آئیے ، API کال اور JSON پوسٹ پروسیسنگ کو ایک ساتھ اسکرپٹ میں ڈالیں جو ہماری مطلوبہ اشاعتوں کے ساتھ ایک فائل تیار کرے گی۔ ہم صرف / r / MildlyInrestresting کو نہیں کسی بھی subreddit سے اشاعتیں لانے کے لئے تعاون شامل کریں گے۔

اپنا ایڈیٹر کھولیں اور اس ٹکڑوں کے مندرجات کو ایک فائل میں کاپی کریں جس کو سکریپ - ڈریڈ.ش کہتے ہیں

#! / بن / باز

اگر [ -z "$1" ]
  پھر
    گونج "براہ کرم ایک سبڈیڈیٹ متعین کریں"
    باہر نکلیں 1
فائی

سبسکرڈ = $ 1
NOW = $ (تاریخ + "٪ m_٪ d_٪ y-٪ H_٪ M")
OUTPUT_FILE = "$ {SUBREDDIT}_ $ {NOW}.txt"

curl -s -A "bash-scrape-ਵਿਸ਼ੇ" https://www.reddit.com/r/${SUBREDDIT}.json | \
        jq '.data.children | . [] | .data.title، .data.url، .data.permalink '| \
        جبکہ TIS پڑھیں۔ کیا
                URL پڑھیں
                پڑھیں - PERMALINK
                گونج -e "$ {TITLE} \ t $ {URL} \ t $ {PERMALINK}" | tr - ڈیلیٹ \ ">> $ {OUTPUT_FILE}
        کیا

یہ اسکرپٹ پہلے جانچ کرے گا کہ آیا صارف نے سبڈڈیٹ نام فراہم کیا ہے۔ اگر نہیں تو ، یہ خامی پیغام اور غیر صفر ریٹرن کوڈ کے ساتھ موجود ہے۔

اگلا ، یہ سب سے پہلے نام کی حیثیت سے پہلی دلیل کو محفوظ کرے گا ، اور ایک تاریخی مہر لگا ہوا فائل نام تیار کرے گا جہاں پیداوار کو بچایا جائے گا۔

کارروائی اس وقت شروع ہوتی ہے جب curl ایک کسٹم ہیڈر اور کھرچنا کرنے کے لئے subreddit کے URL کے ساتھ کہا جاتا ہے. آؤٹ پٹ کو پائپ کیا جاتا ہے jq جہاں اس کی تجزیہ کی گئی ہے اور اسے تین فیلڈز تک محدود کردیا گیا ہے: عنوان ، URL اور Permalink۔ یہ لائنیں ایک وقت میں ایک دفعہ پڑھی جاتی ہیں ، اور ریڈ کمانڈ کے ذریعہ ایک متغیر میں محفوظ ہوجاتی ہیں ، کچھ وقت کے اندر اندر ، جو پڑھنے کے ل to مزید لائنز نہیں ملتی ہیں ، جاری رہے گی۔ ٹیب کیریکٹر کے ذریعہ دبائے جانے والے تینوں فیلڈز کو بازگیر کرتے وقت باطن کی آخری لائن ، tr کمانڈ کریں تاکہ ڈبل قیمت درج ہوسکے۔ اس کے بعد آؤٹ پٹ کسی فائل میں شامل ہوجاتا ہے۔

اس اسکرپٹ کو عملی شکل دینے سے پہلے ، ہمیں اس بات کو یقینی بنانا ہوگا کہ اسے عملدرآمد کی اجازت مل گئی ہے۔ کا استعمال کرتے ہیں chmod ان اجازتوں کو فائل پر لاگو کرنے کا حکم:

chmod u + x scrape-reddit.sh

اور ، آخر میں ، اسکرپٹ کو سبریڈیٹ نام کے ساتھ چلائیں:

./scrape-reddit.sh ہلکے سے دلچسپی لینا

ایک آؤٹ پٹ فائل اسی ڈائرکٹری میں تیار ہوتی ہے اور اس کے مندرجات کچھ اس طرح نظر آئیں گے:

ہر لائن میں وہ تین فیلڈز ہوتے ہیں جن کے بعد ہم ایک ٹیب کیریکٹر کا استعمال کرکے الگ ہوجاتے ہیں۔

آگے جا رہے ہیں

ریڈٹ دلچسپ دلچسپ مواد اور میڈیا کی ایک سنہری مائن ہے ، اور اس کے JSON API کا استعمال کرتے ہوئے اسے آسانی سے حاصل کیا جاسکتا ہے۔ اب جبکہ آپ کے پاس اس اعداد و شمار تک رسائی حاصل کرنے اور نتائج پر کارروائی کرنے کا ایک طریقہ ہے کہ آپ یہ کام کر سکتے ہیں جیسے:

  • / r / WorldNews کی تازہ ترین سرخیاں پکڑیں ​​اور انہیں استعمال کرکے اپنے ڈیسک ٹاپ پر بھیجیں اطلاع بھیجیں
  • اپنے نظام کے پیغام کے دن میں / r / داد جوز کے بہترین لطیفے اکٹھا کریں
  • آج کی بہترین تصویر / r / aww سے حاصل کریں اور اسے اپنا ڈیسک ٹاپ پس منظر بنائیں

یہ سب آپ کے سسٹم میں فراہم کردہ ڈیٹا اور ان ٹولز کا استعمال کرکے ممکن ہے۔ مبارک ہیکنگ!

.entry-content .ینٹری فوٹر

Using Scrapy On Reddit.com


کلاؤڈ اور انٹرنیٹ - انتہائی مشہور مضامین

ٹویٹر کی نئی 280-کردار کی حد کو اب کیسے حاصل کریں

کلاؤڈ اور انٹرنیٹ Oct 31, 2025

غیر منقولہ مواد اگر آپ نے نہیں سنا ہے تو ، ٹویٹر ہے 280-کردار پیغام کی لمبی حد جانچ کر رہا ہے ،..


اپنے Gmail اکاؤنٹ کو IMAP کا استعمال کرکے آؤٹ لک میں شامل کریں

کلاؤڈ اور انٹرنیٹ Dec 2, 2024

اگر آپ اپنا ای میل چیک کرنے اور ان کا نظم و نسق کرنے کے لئے آؤٹ لک کا استعمال کرتے ہیں تو ، آپ اسے آسان�..


اپنے خیالات کو منظم کرنے کے لئے ایپل کی نئی نوٹس ایپ کا استعمال کیسے کریں

کلاؤڈ اور انٹرنیٹ Mar 30, 2025

نوٹوں کو لینے سے آپ اس شاور میں اس شاندار خیال کو یاد کرنے اور نالیوں کو نیچے جانے دے سکتے ہیں۔ ایپل ک..


iMacros کے ساتھ دہرائے جانے والے ویب براؤزر کے ٹاسک کو خود کار طریقے سے کیسے استعمال کریں

کلاؤڈ اور انٹرنیٹ Jul 12, 2025

کمپیوٹرز بار بار کاموں کو خود کار بناتے ہیں - اگر آپ اپنے آپ کو بار بار فارم جمع کرواتے ہو یا بار بار ک..


جی میل میں اسپیس کو خالی کرنے کا طریقہ: اسپیس کو دوبارہ حاصل کرنے کے 5 طریقے

کلاؤڈ اور انٹرنیٹ May 1, 2025

غیر منقولہ مواد جی میل ذخیرہ کرنے کی ایک اعلی حد - 10 جی بی اور گنتی فراہم کرتا ہے - لیکن اگر آپ اس کے ق�..


انسٹ پیپر کے ساتھ بعد میں پڑھنے کیلئے ویب مضامین کو محفوظ کریں

کلاؤڈ اور انٹرنیٹ Mar 30, 2025

کیا آپ نے کبھی عمدہ مضامین کا ایک مجموعہ پورا کیا ہے جسے آپ آن لائن پڑھنا چاہتے ہیں ، لیکن ابھی وقت نہیں ہے�..


انٹرنیٹ ایکسپلورر کے بُک مارکس کو محفوظ کریں

کلاؤڈ اور انٹرنیٹ Sep 13, 2025

ذاتی طور پر صرف ایک بار جب میں انٹرنیٹ ایکسپلورر کا استعمال کرتا ہوں تو یہ ہے کہ اگر میں ونڈوز اپ ڈیٹس ڈاؤن..


فوری ٹپ: فائر فاکس کو دوبارہ شروع کرتے وقت ونڈوز اور ٹیبز کو محفوظ کریں

کلاؤڈ اور انٹرنیٹ Apr 28, 2025

غیر منقولہ مواد فائر فاکس کو دوبارہ شروع کرنا ہم میں سے درجنوں کے لئے کھلا رہنا مشکل ہے ، کیوں کہ آپ تمام �..


اقسام