في مرحلة ما من حياتي ، أدركت أنه من أجل السعادة أحتاج إلى إنشاء 10 صفحات من نسخ نفسي على فكونتاكتي وفي نفس الوقت تضاف كصديق لأشخاص من قائمة الأصدقاء بصفحتي الرئيسية. للحصول على تفاصيل عن تنفيذ الفكرة - من فضلك ، تحت القط.

أهداف المشروع
- جعل 10 صفحات على فكونتاكتي
- نسخ الصورة الرمزية من الصفحة الرئيسية
- نسخ جميع المشاركات من الصفحة الرئيسية
- انسخ جميع مقاطع الفيديو من الصفحة الرئيسية
- إضافة إلى جميع مجموعات الصفحة الرئيسية
- قم بعمل رسم بياني كامل لصداقات الأصدقاء بين روبوتات (مثل كل إدخال وأضف كل روبوت كصديق)
- أضف إلى كل واحد من 80 شخصًا من قائمة الأصدقاء المترجمة مسبقًا
تسجيل
لإنشاء الصفحات ، استخدمت خدمة sms-reg.com ، حيث تتم كتابة المزيد حول خدمات استقبال الرسائل القصيرة
هنا جيدًا.
نقوم بتسجيل جميع الصفحات العشر وكتابة أسماء المستخدمين / كلمات المرور الخاصة بهم في ملف accounts.json (حيث يكون id هو معرف الصفحة التي يتم تسجيلها ، و zero_id هو معرف صفحتنا الرئيسية):
{ "zero_id": "21102****", "accounts": [ { "phone": "7985002****", "password": "tTod********", "id": 53980**** }, { "phone": "7985317****", "password": "tglh********", "id": 53980**** }, ... { "phone": "7916033****", "password": "ZsRq********", "id": 54038**** } ] }
الثعبان + vk_api
سوف أعمل مع مكتبة vk_api.
pip install vk_api --user
قم بإنشاء ملف bots.py ، وسيكون من المفيد لنا بالنسبة لبقية النصوص:
import json import vk import vk_api from captcha import captcha_handler with open('accounts.json', 'r') as file: data = json.loads(file.read()) accounts = data['accounts'] zero_id = int(data['zero_id']) vk_apis = [] def init_apis(): current_id = 0 for account in accounts: vk_session = vk_api.VkApi(account['phone'], account['password'], captcha_handler=captcha_handler) vk_session.auth() vk_apis.append(vk_session.get_api()) print('account', current_id, 'successfully inited') current_id += 1 init_apis()
يقرأ accounts.json ويقوم بتهيئة api لكل حساب.
نسخة الرمزية
def change_photo(vk): upload_url = vk.photos.getOwnerPhotoUploadServer()['upload_url'] answer = json.loads(requests.post(upload_url, files={'photo': open('avatar.jpg', 'rb')}).text) vk.photos.saveOwnerPhoto(photo=answer['photo'], server=answer['server'], hash=answer['hash']) counter = 0 for vk in vk_apis: change_photo(vk) print(counter, 'done') counter += 1
نسخ الفيديو
videos = default_vk.video.get(owner_id=zero_id, count=100) counter = 0 for vk in vk_apis: for video in videos['items']: vk.video.add(video_id=video['id'], owner_id=video['owner_id'])
إضافة إلى مجموعات
from time import sleep from bots import vk_apis, zero_id, accounts, default_vk groups = default_vk.groups.get(user_id=zero_id, count=100) counter = 0 for vk in vk_apis: for group in groups['items']: print('add to', group) vk.groups.join(group_id=group) print(counter) counter += 1
إنشاء رسم بياني كامل من الأصدقاء

counter = 0 for vk, account in zip(vk_apis, accounts): for friend in accounts: if friend['id'] == account['id']: continue vk.friends.add(user_id=friend['id'], captcha_handler=captcha_handler) print(counter, friend['id'], account['id']) counter += 1 sleep(1)
إنشاء الرسم البياني الكامل يحب
counter = 0 for vk, account in zip(vk_apis, accounts): for friend in accounts: if friend['id'] != account['id']: continue print(counter, friend['id'], account['id']) for post in vk.wall.get(owner_id=friend['id'])['items']: flag = True while flag: try:
أضف إلى الأصدقاء
إنشاء ملف أصدقاء نكتب فيه في كل سطر
id_ #_ ( )
VKontakte يسمح لك بإضافة حوالي 80 شخصا في اليوم.
friends_str = '' with open('friends', 'r') as file: friends_str = file.read() friends = [{'id': x.split(' #')[0], 'name': x.split(' #')[1]} for x in friends_str.split('\n')] ids_ = ([x['id'] for x in (default_vk.users.get(user_ids=[x['id'] for x in friends]))]) for friend, id_ in zip(friends, ids_): print(friend['name']) print(friend) for vk in vk_apis: flag = True while flag: try: vk.friends.add(user_id=int(id_)) flag = False except: print('error') sleep(10)
CAPTCHA الالتفافية
القارئ اليقظ قد رأى بالفعل الخط
from captcha import captcha_handler
نظرًا لأن فكونتاكتي لا يحب هذا العدد من الطلبات دائمًا ، يجب عليك معالجة كلمة التحقق. هناك عدد كبير من الخدمات التي توفر هذه الفرصة. تحتاج فقط إلى إرسال طلب نشر مع captcha في base64 والانتظار.

def uncapcha(url): imager = requests.get(url) r = requests.post('http://rucaptcha.com/in.php', data = {'method': 'base64', 'key': RUCAPTCHA_KEY, 'body': base64.b64encode(imager.content)}) if (r.text[:3] != 'OK|'): print('captcha failed') return -1 capid = r.text[3:] sleep(5) capanswer = requests.post('http://rucaptcha.com/res.php', data = {'key': RUCAPTCHA_KEY, 'id':capid, 'action':'get'}).text if (capanswer[:3] != 'OK|'): print('captcha failed') return -1 return capanswer[3:]
النتائج
إليك بعض لقطات لما أرسله لي الناس
جيثبيبقى السؤال الرئيسي مفتوحًا - لماذا فعلت هذا؟ ليس لدي فكرة.