![]() |
![]() |
آخر مواضيع المنتدى |
|
|
![]() |
|
|
|
|
|
||||||||
|
|
|
|
|
![]() |
|
|
|
|
|
|
|
|
|
|
#1 | |
|
مدير ومالك المنتديان
![]() |
السلام عليكم ورحمة الله وبركاته شفت نفسي فاضي الوقت هذا فقلت راح اشرح طريقة برمجة اداة تشيكر للانستقرام --------------------------------------------------------------- هذا الجزء من المحتوى مخفي طبعا اللغة المستخدمة بايثون Python 3> up من الاصدار الثالث وأعلى يالله نبدأ بسم الله بداية راح نسوي فنكشن وظيفة الفنكشن يستعلم عن اليوزر هل هو متاح او لا كود: def Check(user): payload = dict(email="ttttttt@yopmail.com",password="Dd9393939",username=user,first_name="FirstName") url = "https://instagram.com/" Sess = Con.Session() Get = Sess.get(url) #print(Sess.cookies) Token = Sess.cookies['csrftoken'] Sess.headers = { "Host": "www.instagram.com", "User-Agent": "Mozilla/5.0(Windows NT 6.3;WOW64;rv:46.0)Gecko/20100101Firefox/46.0", "Accept": "*/*", "Accept-Language": "en-US,en;q=0.5", "X-Instagram-AJAX": "1", "X-CSRFToken": Token, "X-Requested-With": "XMLHttpRequest", "Referer": "https://www.instagram.com/" } post = Sess.post("https://www.instagram.com/accounts/web_create_ajax/attempt/",payload) j = (json.loads(post.text)) print(j['dryrun_passed'],":",user) عرفنا الدالة باسم Check تاخذ بارمتر واحد فقط لاغير اللي هو اليوزر اما السطر اللي بعده عرفنا متغير payload وهذا المتغير هو البوست اللي راح نرسلة كل القيم اللي فيه وهمية كود PHP: payload = dict(email="ttttttt@yopmail.com",password="Dd9393939",username=user,first_name="FirstName") عباره عن dictinori دكشنري او مصفوفة بمفاتيح طبعا هذي المتغيرات الخاصة بالانستقرام واعطيناها قيم وهمية ايميل من راسي وباسورد من راسي والاسم الاول من راسي ماعدا username اعطيناه القيمة user واليوزر هذا هو البارمتر اللي بالفنكشن يوم سويناه ---------------------------------------------------------------- السطر اللي بعده url هذا متغير اضفنا فيه رابط الاسنتقرام المتغير اللي بعده سوينا جلسة جديدة عن طريق مكتبة requests ضرووري نستدعي المكتبة باعلى الكود تم استدعاء المكتبة باسم import requests ------------------------------------------------------------- المتغير Get هذا يتصل على موقع الانستقرام عشان نسحب الهيدر ويهمنا هنا التوكن فقط لاغير --------------------------------------------- Tokenمتغير هنا سحبنا التوكن من الانستقرام بعد مااتصلنا عليه اما هنا المتغير اللي بعده Sess.headers ارسلنا الهيدر اللي نبي كأننا متصلين من متصفح معاه التوكن اللي سحبناه ------------------ المتغير اللي بعده post هنا ارسلنا البوست للموقع فيه رابط الموقع مع البايلود اللي سويناه أول شي بعد مانرسله راح يجينا ناتج ولكن الناتج عباره عن json راح نستعرض فقط dryrun_passedمن الناتج اللي راح يجينا وهو يجي ثلاث حالات اللي يهمنا حالتين True متاح غير متاح False الان نستدعي الدالة اللي سويناها فوق ونظيف بها يوزر Check("djsjjdj") اي يوزر بالبارمتر راح يتصل عالموقع ويتأكد هل هو متاح او لا ويعطينا الناتج True False ---------------------------------------------------------- طيب بالغالب المبرمجين يسوون طريقة التخمين عن طريق لستة يخلونها داخل حلقة تكرار يعني مثلا لو بسويها من داخل لستة كحلقة مثال كود: user = ('ssd',"kskjfjs","kksd","20002","llsllsl","test","login","hello","kksjfhj","kkkkk","9dkskd","dkkdkd","ooodiifod","ooodiisid","jhjfhdhhfjd","lllskdks","hello","ider") for item in user: Check(item) وراح يبدا التخمين على طول السلسة كلها وحسب اتصالك ![]() طيب فيه طريقتين نتخطى هالمشكلة اولها نستخدم ثريد او مايسمى Thread او طريقة اخرى اسمها multiprocess الفرق بين الطريقتين وشو ثريد انه يرسل الاستعلامات بالتوازي ولكن فيه مشكله بعد لو كان الاتصال ضعيف نفس الحكاية طيب بنستخدم الحركة الثانيه وهي تعتمد على مواصفات الجهاز اولا وثانيا على الاتصال ونقدر نقسم الارسال حسب مانبي يعني بامكاني ارسل 200 استعلام كل ثانيتين وبنفس الووقت لكن ماراح اعقد الكود بس بخلي الفكره مفهومة راح نسويه كالتالي كود: user = ('ssd',"kskjfjs","kksd","20002","llsllsl","test","login","hello","kksjfhj","kkkkk","9dkskd","dkkdkd","ooodiifod","ooodiisid","jhjfhdhhfjd","lllskdks","hello","ider") p = Pool() item = p.map(Check,user) print(" Finished in : " + str(int(time.time() - start_time)) + "s") بيكون سريع بالاستعلام طبعا بالامكان تقسيم البروسس حسب ماتريد عن طريق مكتبات اخرى لكن هذا الكود مبدئي جدا لتوضيح الفكرة وإلا بالامكان اني اسوي خارطة لطريقة الاستعلام كالتالي كل عشرين استعلام بنفس الوقت واضيفها داخل ثريد Thread ايضا بحيث يكون الاستعلام مضاعف وبنفس الوقت وايضا عشان ماأتعب الذاكره وهذا الكود كامل طبعا اضفت مكتبة التايم عشان معرفة حساب ناتج الاستعلام بالكامل ناتج الاستعلام بجهازي على اللستة اخذ 6 ثواني فقط كود: هذا الجزء من المحتوى مخفي كود: import time,json from multiprocessing import Pool import requests as Con start_time = time.time() def Check(user): payload = dict(email="ttttttt@yopmail.com",password="Dd9393939",username=user,first_name="FirstName") url = "https://instagram.com/" Sess = Con.Session() Get = Sess.get(url) #print(Sess.cookies) Token = Sess.cookies['csrftoken'] Sess.headers = { "Host": "www.instagram.com", "User-Agent": "Mozilla/5.0(Windows NT 6.3;WOW64;rv:46.0)Gecko/20100101Firefox/46.0", "Accept": "*/*", "Accept-Language": "en-US,en;q=0.5", "X-Instagram-AJAX": "1", "X-CSRFToken": Token, "X-Requested-With": "XMLHttpRequest", "Referer": "https://www.instagram.com/" } post = Sess.post("https://www.instagram.com/accounts/web_create_ajax/attempt/",payload) j = (json.loads(post.text)) print(j['dryrun_passed'],":",user) user = ('ssd',"kskjfjs","kksd","20002","llsllsl","test","login","hello","kksjfhj","kkkkk","9dkskd","dkkdkd","ooodiifod","ooodiisid","jhjfhdhhfjd","lllskdks","hello","ider") p = Pool() item = p.map(Check,user) print(" Finished in : " + str(int(time.time() - start_time)) + "s") كلمة شكر تكفي :OX646112[1]: الشرح القادم باذن الله اداة جمع معلومات بطرق متقدمة الموضوع الأصلي : <font color="#000000" size="2" face="tahoma">شرح برمجة تشيكر Checkr انستقرام بالبايثون<font color="#000000" size="2"> المصدر : مجتمع الفرسان الكاتب : <font color="#000000" size="2" face="tahoma">jquery المصدر... اثبت وجودك
..
|
|
![]() من مواضيعي في الملتقى
|
||
|
|
|
|
|
![]() |
|
|
|
|
|
|
|
|
|
|
![]() |
|
|
|
|
|
||||
|
|
|
|
|
|
|