पायथन का उपयोग करके ट्विटर, इंस्टाग्राम और रेडिट बॉट्स कैसे बनाएं

पायथन का उपयोग करके ट्विटर, इंस्टाग्राम और रेडिट बॉट्स कैसे बनाएं

यह 2019 है। आपने बॉट्स के बारे में सुना होगा। चैट बॉट, ईमेल बॉट, वेब स्क्रैपिंग बॉट और सोशल मीडिया बॉट हैं। क्या आपने अभी तक एक बॉट बनाया है? यह आश्चर्यजनक रूप से आसान है। शायद इसीलिए वे हर जगह हैं। हमारे बॉट अधिपतियों को उनके रैंक में शामिल करके गले लगाओ।





इस लेख में, मैं आपको दिखाऊंगा कि आप अपने ट्विटर, रेडिट और इंस्टाग्राम खातों के साथ स्वचालित रूप से बातचीत करने के लिए पायथन का लाभ कैसे उठा सकते हैं।





पायथन के साथ काम करना

यह वॉक-थ्रू अपनी पसंद की भाषा के रूप में पायथन का उपयोग करता है। पायथन के उपयोग में आसानी के फायदे अन्य भाषाओं की तुलना में किसी भी गति की कमियों से आगे निकल जाते हैं। आप लगभग किसी भी ओएस के लिए पायथन डाउनलोड कर सकते हैं। उपयोग आपकी पसंद का संपादक .





पायथन वितरण नामक उपयोगिता से जुड़ा हुआ है

मैक पर संदेशों को कैसे हटाएं
pip

. लेखन के समय, १६८,००० से अधिक पुस्तकालय डाउनलोड के लिए उपलब्ध हैं



pip

. आज आप जो बॉट बनाएंगे, उनके लिए केवल तीन की जरूरत है।

कमांड लाइन से, आप इन तीन पंक्तियों का उपयोग करके आवश्यक पुस्तकालयों को स्थापित कर सकते हैं।





pip install --upgrade InstagramAPI
pip install --upgrade tweepy pip install --upgrade praw

अब आप इन पुस्तकालयों को जहां आवश्यक हो आयात करने में सक्षम होंगे।

एप्लिकेशन कुंजी और रहस्य प्राप्त करना

एक बुद्धिमान दार्शनिक ने एक बार कहा था 'रहस्य, रहस्य कोई मज़ा नहीं है। रहस्य, रहस्य किसी को चोट पहुँचाते हैं।' सम्मानपूर्वक, बॉट्स को रहस्यों की आवश्यकता होती है। अपने बॉट्स को सेट करने का अगला चरण उन्हें प्रत्येक साइट के एपीआई तक पहुंच की अनुमति देना है। ऐसा करने के लिए, आपको एक एप्लिकेशन कुंजी या रहस्य की आवश्यकता होगी।





जैसे ही आप चाबियाँ, रहस्य, टोकन और बहुत कुछ इकट्ठा करते हैं (एक मजेदार गेम की तरह लगता है!), उन सभी को 'credentials.py' नामक एक फ़ाइल में डाल दें। यह फ़ाइल कुछ इस तरह दिखेगी:

# keys
twitter_consumer_key = ''
twitter_consumer_secret = ''
twitter_access_token = ''
twitter_access_token_secret = ''
reddit_client_id = ''
reddit_client_secret = ''
reddit_user_agent = ''
instagram_client_id = ''
instagram_client_secret = ''

बहुत महत्वपूर्ण गोपनीयता सुझाव: इस फ़ाइल को किसी भी स्रोत नियंत्रण (जैसे Git) के लिए प्रतिबद्ध न करें। आप नहीं चाहते कि किसी और के पास ये चाबियां और रहस्य हों। उन्हें एक कारण से रहस्य कहा जाता है।

ट्विटर एक्सेस सेट करना

Node.js के साथ एक ट्विटर बॉट स्थापित करने के लिए हमारी मार्गदर्शिका देखें, जो आपको दिखाएगा कि आप अपना ट्विटर ऐप कैसे बना सकते हैं। ध्यान दें कि Twitter को आपका खाता सत्यापित करने और यह सुनिश्चित करने में कुछ समय लगेगा कि आप कोई स्पैम खाता नहीं बना रहे हैं।

उन चरणों का पालन करने के बाद, उपभोक्ता कुंजी, उपभोक्ता रहस्य, एक्सेस टोकन, और एक्सेस टोकन रहस्य को अपनी क्रेडेंशियल.py फ़ाइल में कॉपी करें।

रेडिट एक्सेस सेट करना

आपका Reddit क्लाइंट आईडी और रहस्य प्राप्त करना ट्विटर के समान ही है। आपको Reddit उपयोगकर्ता एजेंट के रूप में एक ऐप पंजीकृत करना होगा। ऐसा करने के बाद आप अपने रिज्यूमे पर बिल्कुल 'Reddit User Agent' डाल दें।

साइन इन करें अपने चयन के Reddit खाते में। पर नेविगेट करें ऐप्स वरीयताएँ पृष्ठ तथा एक और ऐप बनाएं पर क्लिक करें . अपने उपयोगकर्ता एजेंट को कुछ उपयोगी नाम दें। स्क्रिप्ट का चयन करें आपके ऐप के उद्देश्य के लिए। URL के बारे में खाली छोड़ा जा सकता है। रीडायरेक्ट बॉक्स के लिए कोई भी पता भरें।

आपके बाद ऐप बनाएं दबाएं , आपके ऐप्स की सूची के साथ निम्न स्क्रीन आपके सामने प्रस्तुत की जाएगी। आपके आवेदन नाम के नीचे के अंक क्लाइंट आईडी का प्रतिनिधित्व करते हैं और क्लाइंट सीक्रेट उसके नीचे स्थित होता है। इन मानों को अपनी क्रेडेंशियल.py फ़ाइल में कॉपी करें।

इंस्टाग्राम एक्सेस सेट करना

इंस्टाग्राम एक्सेस ट्विटर और रेडिट से अलग है। ऐप को पंजीकृत करने के बजाय, आप अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करते हैं। मेरा सुझाव है कि एक अलग सार्वजनिक खाता बनाएं और अपने बॉट के लिए उन विवरणों का उपयोग करें।

Prow . के साथ रेडिट एक्सेस करना

झींगे का उपयोग दो चरणों वाली प्रक्रिया है। सबसे पहले, एक्सेस सेट करना, प्राव की रेडिट विधि के लिए एक एकल फ़ंक्शन कॉल है। फिर, इनिशियलाइज़्ड ऑब्जेक्ट का उपयोग करके, एक सब्रेडिट की खोज new() विधि का उपयोग करके की जाती है।

import praw
from credentials import *
my_reddit = praw.Reddit(client_id=reddit_client_id, client_secret=reddit_client_secret, user_agent=reddit_user_agent)
sub_name = 'technology'
max_posts = 10
for submission in my_reddit.subreddit(sub_name).new(limit=max_posts):
print(submission.title)

बदलें

sub_name

विभिन्न सबरेडिट्स से पोस्ट प्राप्त करने के लिए चर। के बजाए

new()

, अन्य तरीके जैसे

hot()

पद पाने के लिए उपलब्ध हैं।

InstagramAPI . के माध्यम से Instagram हैशटैग खोजना

इंस्टाग्राम एपीआई का उपयोग करने में पहला कदम क्लाइंट आईडी और सीक्रेट के साथ एक ऑब्जेक्ट सेट करना है। उसके ठीक बाद, सेटअप पूरा करने के लिए लॉगिन () विधि को कॉल करें।

from InstagramAPI import InstagramAPI
from credentials import instagram_client_id, instagram_client_secret
my_insta_api = InstagramAPI(instagram_client_id,instagram_client_secret)
my_insta_api.login()

एपीआई का उपयोग करना इसके रेडिट समकक्ष की तुलना में थोड़ा अधिक जटिल है। इस उदाहरण में, स्क्रिप्ट Instagram से एक बहुत बड़ी JSON प्रतिक्रिया ऑब्जेक्ट प्राप्त करने के लिए getHashtagFeed का उपयोग करती है।

प्रतिक्रिया के माध्यम से खोज करते हुए, स्क्रिप्ट कैप्शन टेक्स्ट की तलाश करती है और फिर इसे देखने के लिए स्क्रीन पर प्रिंट करती है।

get_hashtag = my_insta_api.getHashtagFeed(hashtag)
if get_hashtag != False:
for item in my_insta_api.LastJson['items']:
if 'caption' in item.keys() and 'text' in item['caption'].keys():
caption = item['caption']['text']
print(caption)

सोशल मीडिया में छवियां जोड़ें

आगे बढ़ते हुए, हो सकता है कि आप चाहते हों कि आपकी स्क्रिप्ट को इस हैशटैग फ़ीड में छवियां मिलें। ऐसा करने के लिए, JSON प्रतिक्रिया के माध्यम से लूप करें और प्रत्येक पोस्ट से जुड़े मीडिया को खोजें। यहाँ JSON प्रतिक्रिया से जानकारी निकालने के लिए एक कार्यान्वयन है:

def get_images_from_hashtag(hashtag, num_images):
images = []
get_hashtag = my_insta_api.getHashtagFeed(hashtag)
if get_hashtag == False:
return images
for item in my_insta_api.LastJson['items']:
if item['media_type'] == 1 and 'image_versions2' in item.keys():
candidate = get_largest_image(item['image_versions2']['candidates'])
# get image
filename = self.save_image_from_candidate(candidate['url'])
if filename != '':
# get status, save as tuple
caption = get_caption(item)
images.append((filename, caption))
if len(images) >= num_images:
break
return images

इस फ़ंक्शन में उपयोग किए जाने वाले दो सहायक कार्य हैं। इंस्टाग्राम JSON प्रतिक्रिया में छवि 'उम्मीदवारों' की एक सूची भेजता है। इनमें से सबसे बड़ी छवि चुनें ताकि मीडिया अपने उच्चतम रिज़ॉल्यूशन में प्रदर्शित हो।

def get_largest_image(candidates):
candidate = {}
pixels = 0
for cand in candidates:
# pick the highest resolution one
res = cand['height']*cand['width']
if res > pixels:
pixels = res
candidate = cand
return candidate

दूसरे, एक बार छवि का लिंक मिल जाने के बाद, आप फ़ाइल में सामग्री लिखकर छवि को स्थानीय रूप से सहेज सकते हैं। का उपयोग करते हुए

requests

पुस्तकालय इसे सीधा बनाता है।

def save_image_from_candidate(url):
filename = ''
response = requests.get(url)
# check the response status code, 200 means good
if response.status_code == 200:
filename = url.split('/')[-1].split('?')[0]
with open(filename, 'wb') as f:
f.write(response.content)
return filename

मीडिया को ट्वीटी के साथ ट्वीट करना

सबसे पहले, आपको अपने रहस्यों और चाबियों का उपयोग करके ट्विटर एक्सेस सेट अप करना होगा।

import tweepy
from credentials import *
tw_auth = tweepy.OAuthHandler(twitter_consumer_key, twitter_consumer_secret)
tw_auth.set_access_token(twitter_access_token, twitter_access_token_secret)
tw_api = tweepy.API(tw_auth)

एक सामान्य रीट्वीट बॉट बनाना कुछ ही पंक्तियों में किया जाता है।

for tweet in tweepy.Cursor(tw_api.search,q='MakeUseOf').items(10):
try:
tweet.favorite()
tweet.retweet()
time.sleep(2)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break

इस पुस्तकालय से और भी बहुत कुछ किया जा सकता है। इस वॉक-थ्रू को समाप्त करने के लिए, आप इसका उपयोग कर सकते हैं

get_images_from_hashtag

छवियों और कैप्शन को ट्वीट करने के लिए पहले बनाए गए इंस्टाग्राम बॉट से कार्य।

इसके अतिरिक्त, आपका ट्विटर बॉट नई पोस्ट के लिए रेडिट खोज सकता है और उन्हें भी ट्वीट कर सकता है। इन दोनों कार्यक्षमताओं को एक साथ रखने के लिए इस तरह दिखता है:

# use r/ for reddit search
# and # for instagram search
hashtag = 'technology'
num_posts = 5
# tweet reddit info
reddit_posts = my_reddit.subreddit(hashtag).new(limit=num_posts)
for submission in reddit_posts:
title = submission.title
url = 'www.reddit.com{}'.format(submission.permalink)
tweet_str = f'Reddit r/{sub} update:
{title} #{sub} {url}'
tweet_str = trim_to_280(tweet_str)
tw_api.update(tweet_str)
# tweet instagram media
media_info = get_images_from_hashtag(hashtag, num_posts)
for (filename, message) in media_info:
try:
tweet_str = trim_to_280(message)
tw_api.update_with_media(filename, status=tweet_str)
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break

आपका पायथन-संचालित सोशल मीडिया बॉट तैयार है!

तो, अब आपके पास कोड का एक गुच्छा है जो मीडिया को एक साइट और पोस्ट से दूसरी साइट पर खींचता है। आप मिक्स एंड मैच भी कर सकते हैं। ट्वीट खींचो और Reddit पर पोस्ट करो। Subreddits पर पोस्ट करने के लिए Instagram चित्र एकत्र करें। एक बॉट बनाएं और असली इंटरनेट का हिस्सा बनें।

अंत में, इस प्रक्रिया को पूरी तरह से स्वचालित करने के लिए, आप चाहेंगे कि आपके बॉट एक सर्वर पर लूप में चले। यह समय अनुसूचक के साथ आपके अपने कंप्यूटर पर हो सकता है। या, उस पुराने रास्पबेरी पाई को धूल चटाएं जो आपकी अलमारी में है, और पाई के लिए इन मीठे ट्विटर बॉट प्रोजेक्ट देखें।

साझा करना साझा करना कलरव ईमेल यहां बताया गया है कि एफबीआई ने हाइव रैनसमवेयर के लिए चेतावनी क्यों जारी की

एफबीआई ने रैंसमवेयर के विशेष रूप से खराब तनाव के बारे में चेतावनी जारी की। यहां बताया गया है कि आपको हाइव रैंसमवेयर से विशेष रूप से सावधान रहने की आवश्यकता क्यों है।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • अजगर
  • सोशल मीडिया बॉट्स
  • कोडिंग ट्यूटोरियल
लेखक के बारे में टॉम जॉनसेन(3 लेख प्रकाशित)

टॉम फ्लोरिडा से एक सॉफ्टवेयर इंजीनियर है (फ्लोरिडा मैन के लिए चिल्लाओ) लेखन के जुनून के साथ, कॉलेज फुटबॉल (गेटर्स जाओ!), क्रॉसफिट, और ऑक्सफोर्ड कॉमा।

टॉम जॉनसेन की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें