متفرق پائتھون کے ذریعے واٹس ایپ ویب کو آٹو میٹ کرنا۔

ایسے کاموں کے لیے سلینیم بہتر نہیں۔ بلاوجہ اتنا کوڈ لکھنا پڑا۔ Selenium (software) - Wikipedia

یہ سوال آپ نے پوچھا ناں جس کا مجھے انتظار تھا کہ کوئی اس طرف بھی توجہ دے گا۔ بہت خوب سید رافع ۔

سیلینیم استعمال نہ کرنے کی خاص وجہ ہے۔ واٹس ایپ ویب ہمارے براؤزر، یوزر کلائنٹ، ہمارے ٹائم زون، آئی پی، اور دیگر ٹریکنگ ٹیکنالوجی کی مدد سے اپنے یوزرس کے رویے پر نظر رکھتا ہے تاکہ وہ اسپامنگ کو روک سکے۔ اگر ہم سیلینیئم سے بہت جلدی جلدی میسج بھیجتے ہیں، یا بہت بڑی تعداد میں ایک جیسے میسج بھیجتے ہیں تو وہ ہمارئی آئی پی کو گرے لسٹ کر لیتا ہے۔ اور ہم پر نظر رکھنا شروع کردیتا ہے کہ ہم کوئی "بوٹ" تو نہیں ہے۔ اور جب واٹس ایپ کا آٹو میٹک الگورتھم دیکھتا ہے کہ ہم سیلینیئم استعمال کررہے ہیں تو سمجھے کہ آپ کی آئی پی کا بلیک لسٹ ہونا "پکا" ہے۔

اور چونکہ (اگر) ہم لوگوں ان کی اجازت کے بغیر میسج بھیج رہے ہیں تو یقینا کچھ لوگ زچ ہو کر آپ کے نمبر کو اسپام رپورٹ کریں گے۔ چنانچہ جب آئی پی بھی بلیک لسٹڈ ہو اور آپ کو لوگ اسپام بھی مارک کررہے ہوں تو آپ کا واٹس اپ اکاؤنٹ تو گیا کام سے !!! مطلب بند ہو جائے گا۔

یہی وجہ ہے کہ جب میں لوگوں کو مارکیٹنگ میسج بھیجتا ہوں تو ساتھ میں ان میسجز سے مستقبل میں جان چھڑانے کا طریقہ (یعنی ان سب اسکرائب کرنے کا طریقہ) بھی بھیجتا ہو۔ تاکہ لوگ کم سے کم مجھے واٹس ایپ کو رپورٹ کرے اور میرے اکاؤنٹ کو بند ہونے کا خطرہ بھی کم ہوں۔

ویسے مندرجہ بالا باتیں میرا اندازہ ہے جو کہ حقیقت سے کافی قریب محسوس ہوتا ہے۔ میں نے باقاعدہ اس پر کوئی ریسرچ نہیں کی ہے۔

یہ تو تھی سیلینیئم نہ استعمال کرنے کی وجہ۔۔۔ اور پائی آٹو گوئی استعمال کرنے کا فائدہ یہ ہوتا ہے کہ واٹس ایپ ویب، کی بورڈ اور ماؤس (جو کہ ایچ آئی ڈی یعنی ہیومن انٹرفیس ڈیوائسز کہلاتی ہے اور انسانوں کے چلانے سے چلتی ہے)، کےاستعمال سے دھوکہ کھا جاتا ہے کہ یہ سارے میسج جو جارہے ہے وہ کوئی 'سرپھرا' اسکرین کے سامنے بیٹھا لکھ اور فوروارڈ کررہا ہے۔ اور یہ ہمارا واٹس ایپ اکاؤنٹ بند ہونے سے مزید محفوظ ہو جاتا ہے۔
 
ویسے خالص پروگرامنگ سے متعلق جوابات حاصل کرنے کے لیے Stack Overflow - Where Developers Learn, Share, & Build Careers پر سوال اگر آپ پوسٹ کرتے تو منٹوں میں جواب ملتا۔

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

محمد سعد

محفلین
ایکسل سے ڈیٹا (موبائل نمبر، نام وغیرہ) کو کلپ بورڈ پر کاپی کرنے کے لیے، بناء ایکسل کھولے۔ پائتھن میں کسی ٹیکس کو کلپ بورڈ پر کاپی کرنے کے لیے برائے راست (بلٹ ان) کوئی طریقہ نہیں ہے (میری محدود معلومات کے مطابق)۔
کلپ بورڈ کی تو پھر بھی ضرورت نہیں ہے۔ آپ اسے آسانی سے بیچ میں سے نکال کر ایک ڈیپنڈنسی کم کر سکتے ہیں۔
 

محمد سعد

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

محمد سعد

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

محمد سعد

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

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

سیلینیم استعمال نہ کرنے کی خاص وجہ ہے۔ واٹس ایپ ویب ہمارے براؤزر، یوزر کلائنٹ، ہمارے ٹائم زون، آئی پی، اور دیگر ٹریکنگ ٹیکنالوجی کی مدد سے اپنے یوزرس کے رویے پر نظر رکھتا ہے تاکہ وہ اسپامنگ کو روک سکے۔ اگر ہم سیلینیئم سے بہت جلدی جلدی میسج بھیجتے ہیں، یا بہت بڑی تعداد میں ایک جیسے میسج بھیجتے ہیں تو وہ ہمارئی آئی پی کو گرے لسٹ کر لیتا ہے۔ اور ہم پر نظر رکھنا شروع کردیتا ہے کہ ہم کوئی "بوٹ" تو نہیں ہے۔ اور جب واٹس ایپ کا آٹو میٹک الگورتھم دیکھتا ہے کہ ہم سیلینیئم استعمال کررہے ہیں تو سمجھے کہ آپ کی آئی پی کا بلیک لسٹ ہونا "پکا" ہے۔

اور چونکہ (اگر) ہم لوگوں ان کی اجازت کے بغیر میسج بھیج رہے ہیں تو یقینا کچھ لوگ زچ ہو کر آپ کے نمبر کو اسپام رپورٹ کریں گے۔ چنانچہ جب آئی پی بھی بلیک لسٹڈ ہو اور آپ کو لوگ اسپام بھی مارک کررہے ہوں تو آپ کا واٹس اپ اکاؤنٹ تو گیا کام سے !!! مطلب بند ہو جائے گا۔

یہی وجہ ہے کہ جب میں لوگوں کو مارکیٹنگ میسج بھیجتا ہوں تو ساتھ میں ان میسجز سے مستقبل میں جان چھڑانے کا طریقہ (یعنی ان سب اسکرائب کرنے کا طریقہ) بھی بھیجتا ہو۔ تاکہ لوگ کم سے کم مجھے واٹس ایپ کو رپورٹ کرے اور میرے اکاؤنٹ کو بند ہونے کا خطرہ بھی کم ہوں۔

ویسے مندرجہ بالا باتیں میرا اندازہ ہے جو کہ حقیقت سے کافی قریب محسوس ہوتا ہے۔ میں نے باقاعدہ اس پر کوئی ریسرچ نہیں کی ہے۔

یہ تو تھی سیلینیئم نہ استعمال کرنے کی وجہ۔۔۔ اور پائی آٹو گوئی استعمال کرنے کا فائدہ یہ ہوتا ہے کہ واٹس ایپ ویب، کی بورڈ اور ماؤس (جو کہ ایچ آئی ڈی یعنی ہیومن انٹرفیس ڈیوائسز کہلاتی ہے اور انسانوں کے چلانے سے چلتی ہے)، کےاستعمال سے دھوکہ کھا جاتا ہے کہ یہ سارے میسج جو جارہے ہے وہ کوئی 'سرپھرا' اسکرین کے سامنے بیٹھا لکھ اور فوروارڈ کررہا ہے۔ اور یہ ہمارا واٹس ایپ اکاؤنٹ بند ہونے سے مزید محفوظ ہو جاتا ہے۔

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

Build software better, together
 
کوڈ میں کچھ کانفیڈنس ویلیوز ہیں جی یو آئی ایلیمنٹس کی شناخت کرتے ہوئے۔ ان کا فیصلہ کرتے ہوئے آپ نے کس طریقہ کار یا وجوہات کا استعمال کیا؟

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

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

مشکل ہے دوست۔ وجہ میں شاید دوسری پوسٹ میں آپ ہی کو بتا چکا ہوں اور وہ یہ کہ کیونکہ یہ کوڈ جی یو آئی کے طور پر استعمال ہورہا ہے، اس لیے اس کے ہر یوزر کی اسکرین سائز، امیج سائز اور دیگر عوامل کی بنا پر اُس یوزر کو اس کوڈ کے لیے اپنی اسکرین سے کچھ اسکرین شارٹس لینے پڑیں گے۔ اس لیے ورکنگ کوڈ رکھنا تو ممکن نہیں ہے۔ ہاں اگر آپ پھر بھی کہیں تو میں گٹ ہب پر کوڈ رکھ دوں گا۔ بس ایک ریپلائے کر دیں۔ مگر اُس کوڈ کو ورکنگ حالت میں لانا یوزر کی ذمہ داری ہوگی۔
 
میری یادداشت کے مطابق سیلینیم بھی کی سٹروکس اور ماؤس کی حرکات سیمولیٹ کر سکتا ہے۔ مجھے پکا یاد نہیں لیکن یوں محسوس ہو رہا ہے کہ اس کا کہیں تجربہ کیا تھا۔

واہ۔۔۔ تو پھر آپ اس کوڈ کو سیلینیم کے لیے دوبارہ کوڈ کرنا شروع کریں ناں! ہم بھی ساتھ شامل ہو جائیں گے۔
 
تو آپ میں سے کوئی اس اسکرپٹ کو بہتر بنانے میں دلچسپی رکھتا ہے؟ محب علوی بھائی، اگر آپ تعاون کا ارادہ بنائے تو میں بے حد مشکور ہونگا۔

PHP:
def click_on_msg_forward_icon():
    msg_forward_icon_trace = pyautogui.locateOnScreen(msg_forward_icon, confidence=0.5)
    if msg_forward_icon_trace == None:
        # Try to close opened message forward dialog
        pyautogui.press('Esc', presses=2)
        time.sleep(1)
        msg_forward_icon_trace = pyautogui.locateOnScreen(msg_forward_icon, confidence=0.5)

        if msg_forward_icon_trace == None:
            #Search for source message, then forward it.
            pyautogui.click(pyautogui.locateOnScreen('main_window_search_box.png', confidence=0.8))
            pyautogui.write('+92 21 32290223')
            time.sleep(1)
            pyautogui.click(pyautogui.locateOnScreen('source_message_sender.png', confidence=0.8))
            time.sleep(0.5)
            msg_forward_icon_trace = pyautogui.locateOnScreen(msg_forward_icon, confidence=0.5)




اس فنکشن میں یہ دو کوڈ لائن دہرائی جا رہی ہیں، ایک دفعہ میسج فارورڈ آئیکن ٹریس ویری ایبل کو سیٹ کرکے یہ چیک کیا جا رہا ہے کہ یہ خالی تو نہیں۔

PHP:
msg_forward_icon_trace = pyautogui.locateOnScreen(msg_forward_icon, confidence=0.5)

    if msg_forward_icon_trace == None:
پھر یہ یقینی بنایا جا رہا ہے کہ کوئی ڈائیلاگ باکس کھلا تو نہیں، اسے بند کرکے پھر اسی ویری ایبل کو سیٹ کیا جا رہا ہے اور دوبارہ یہ چیک کیا جا رہا ہے کہ یہ خالی تو نہیں۔

میرے خیال میں پہلی دو کوڈ لائن کوڈ دہرائی کے زمرے میں آ رہی ہیں، ان کے بغیر بھی کام چلنا چاہیے بلکہ کوڈ میں ایک بلاک بھی کم ہو گا اور یہ پڑھنے میں بھی بہتر ہوگا۔
 
Top