כיצד לבנות בוטים של טוויטר, אינסטגרם ורדיט באמצעות פייתון

כיצד לבנות בוטים של טוויטר, אינסטגרם ורדיט באמצעות פייתון

זה 2019. שמעת על בוטים. ישנם בוטים של צ'אט, בוטים לדוא'ל, בוטים לגרידת אתרים וכן בוטים לרשתות חברתיות. יצרתם כבר בוט? זה קל להפתיע. כנראה מדוע הם נמצאים בכל מקום. לאמץ את אדוני הבוט שלנו על ידי הצטרפות לדרגתם.





במאמר זה, אראה לך כיצד תוכל למנף את פייתון לאינטראקציה אוטומטית עם חשבונות הטוויטר, הרדיט והאינסטגרם שלך.





עבודה עם פייתון

הדרכה זו משתמשת בפייתון כשפת הבחירה שלו. יתרונות קלות השימוש של פייתון עולים על כל ליקויי מהירות שיש לה בהשוואה לשפות אחרות. אתה יכול להוריד את פייתון כמעט לכל מערכת הפעלה. להשתמש העורך שבחרת .





הפצות Python קשורות לכלי השירות הנקרא

למה אל תשתמשו בחשמל
pip

. בזמן הכתיבה, ישנן למעלה מ -168,000 ספריות להורדה באמצעות



pip

. לבוטים שתיצור היום, יש צורך רק בשלושה.

משורת הפקודה תוכל להתקין את הספריות הדרושות באמצעות שלוש השורות הללו.





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

כעת תוכל לייבא את הספריות הללו היכן שצריך.

קבלת מפתחות יישום וסודות

פילוסוף חכם אמר פעם 'סודות, סודות זה לא כיף. סודות, סודות פוגעים במישהו״. בכבוד, הבוטים זקוקים לסודות. השלב הבא בהגדרת הבוטים שלך הוא לאפשר להם גישה לממשק ה- API של כל אתר. לשם כך תצטרך מפתח יישום או סוד.





בזמן שאתה אוסף מפתחות, סודות, אסימונים ועוד (נשמע כמו משחק מהנה!), הכנס את כולם לקובץ אחד בשם '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 יראה לך כיצד ליצור את אפליקציית הטוויטר שלך. שים לב שלטוויטר ייקח קצת זמן לאמת את חשבונך ולוודא שאינך יוצר חשבון דואר זבל.

לאחר ביצוע השלבים האלה, העתק את מפתח הצרכן, סוד הצרכן, אסימון הגישה וסוד אסימון הגישה לקובץ credentials.py שלך.

הגדרת גישת Reddit

קבלת מזהה הלקוח והסוד של Reddit דומה מאוד לטוויטר. יהיה עליך לרשום אפליקציה כסוכן משתמש של Reddit. לאחר שתעשה זאת, עליך בהחלט לרשום את 'סוכן המשתמש של Reddit' ברזומה שלך.

להתחבר לחשבון Reddit שבחרת. נווט אל דף העדפות אפליקציות ו לחץ על צור אפליקציה נוספת . תן שם לסוכן המשתמש שלך משהו שימושי. בחר סקריפט לצורך האפליקציה שלך. ניתן להשאיר את כתובת ה- URL ריקה. מלא כל כתובת עבור תיבת ההפניה מחדש.

אחריך לחץ על צור אפליקציה , המסך הבא יוצג בפניך עם רשימת האפליקציות שלך. הספרות מתחת לשם היישום שלך מייצגות את מזהה הלקוח וסוד הלקוח נמצא מתחת לזה. העתק ערכים אלה לקובץ credentials.py שלך.

הגדרת גישה לאינסטגרם

הגישה לאינסטגרם שונה מטוויטר ורדיט. במקום לרשום אפליקציה, אתה משתמש בשם המשתמש ובסיסמה שלך. אני מציע ליצור חשבון ציבורי נפרד ולהשתמש בפרטים אלה עבור הבוט שלך.

גישה ל- Reddit עם סורק

שימוש בפרוס הוא תהליך דו-שלבי. ראשית, הגדרת הגישה היא שיחת פונקציה יחידה לשיטת Reddit של פרה. לאחר מכן, באמצעות האובייקט המאתחל, חיפוש תת -עריכה נעשה באמצעות השיטה החדשה ().

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

השלב הראשון בשימוש ב- API של אינסטגרם הוא הגדרת אובייקט עם מזהה הלקוח והסוד. מיד לאחר מכן, התקשר לשיטת הכניסה () להשלמת ההגדרה.

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()

השימוש בממשק ה- API קצת יותר מסובך ממקבילו של Reddit. בדוגמה זו, התסריט משתמש ב- getHashtagFeed כדי לקבל אובייקט תגובה גדול מאוד של JSON מאינסטגרם.

בחיפוש בתגובה, התסריט מחפש טקסט כיתוב ואז מדפיס אותו למסך כדי לצפות בו.

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)

יצירת בוט גנרי retweet מתבצעת בכמה שורות בלבד.

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

פונקציה מבוט האינסטגרם שנעשה קודם לכן לציוץ תמונות וכיתובים.

בנוסף, בוט הטוויטר שלך יכול לחפש ב- Reddit פוסטים חדשים ולצייץ גם אותם. חיבור שני הפונקציות הללו נראה כך:

# 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. אסוף תמונות אינסטגרם לפרסום בכניסות משנה. צור בוט והיות חלק מהאינטרנט האמיתי.

לבסוף, כדי להפוך תהליך זה לאוטומטי באופן מלא, תרצה שהבוטים שלך יפעלו בלולאה בשרת. זה יכול להיות במחשב שלך עם מתזמן זמן. לחלופין, אפשר להסיר את האבק הפטל הישן שהיה בארון שלך ולבדוק את הפרויקטים המתוקים של טוויטר עבור ה- Pi.

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל הנה הסיבה שה- FBI הוציא אזהרה על תוכנת כופר של כוורת

ה- FBI פרסם אזהרה על זן מגעיל במיוחד של תוכנות כופר. הנה הסיבה שאתה צריך להיזהר במיוחד מתוכנת הכופר של כוורת.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • פִּיתוֹן
  • בוטים של מדיה חברתית
  • הדרכות קידוד
על הסופר טום ג'ונסן(3 מאמרים פורסמו)

טום הוא מהנדס תוכנה מפלורידה (צעקה לפלורידה מן) עם תשוקה לכתיבה, כדורגל בקולג '(גאטורס!), קרוספיט ופסיקים של אוקספורד.

עוד מאת טום ג'ונסן

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה