פייתון בשירות המצייצים – סקריפטים שישפרו לנו את הטוויטר

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

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

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

הכלים

הדוגמאות

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

פוסט זה אינו מדריך לשפת פייתון, וגם אינו מתיימר להיות. אני מכוון לתת כאן רעיונות וחשק ללמוד למי שמכיר וגם למי שאינו מכיר. לאלו מהקוראים החדשים לשפה, בשביל להריץ את הדוגמאות יש להעתיק אותן כפי שהן לתוך קובץ (כולל הריווח המדויק – בפייתון יש חשיבות גם לאינדנטציה), ולשמור בסיומת py. לאחר מכן, ניתן להריץ על ידי הפעלת הפקודה הבאה מתוך ה command של חלונות (בהנחה שקראתם לקובץ script.py):

python.exe script.py

הצייצן האוטומטי

המצייץ האוטומטי משתמש באתר http://wertarbyte.de/gigaset-rsss כדי לקבל רעיונות לציטוטים ברסס. כל פעם שנפעיל תוכנית זו, היא תקח משפט אקראי ותצייץ אותו לכל קוראינו. את תוכנית זו נוכל להפעיל כמשימה מתוזמנת על המחשב, וכך להמשיך לעדכן את הפיד גם כשאנחנו בטיול של שבועות הרחק מהמחשב.

תוכנית זו משתמשת בשני מודולים, האחד twitter, מספק את כל הממשק עם הטויטר שלנו. כאן אנחנו משתמשים רק בפונקציה של עדכון הפיד. המודול השני, feedparser מאפשר קריאה של שירותי RSS. אנו משתמשים בו כדי לקרוא את הרסס של הציטוטים. ניתן, כמובן, להחליף לכל רסס מעניין אחר (כמו Newsgeek).

כדי להפעיל את התוכנית, יש למלא את שם המשתמש והסיסמא במקומות המתאימים

import twitter, feedparser

username = ‘replace_this_with_your_twitter_username’

password = ‘replace_this_with_your_twitter_password’

rss = ‘http://wertarbyte.de/gigaset-rss/?offensive=1&limit=140&cookies=1&lang=en&format=rss&jar_id=47890485652059026823698344598447162001596396450349118’

api = twitter.Api(username,password)

d = feedparser.parse(rss)

api.PostUpdate(d.entries[0].title)

לעוקב שעזב: גם אני יודע מי אתה

שירותים כמו quitter אולי נראים לנו כמו קסם, אך למעשה הם מבוססים על רעיון מאוד פשוט – אם רק ארשום כמה עוקבים יש לי היום, אוכל להסתכל מחר ברשימה ולראות מי כבר לא שם. אז נכון, כולנו עושים זאת מדי פעם, אבל למה להתאמץ כשאפשר להפוך את התהליך כולו לאוטומטי לחלוטין? הסקריפט הבא ישמור (בתיקייה הנוכחית) בהפעלה הראשונה את רשימת העוקבים שלכם לקובץ. מכאן והלאה, כל פעם שנפעיל אותו באותה התיקייה הוא ישווה את המצב בפועל עם המצב השמור, יעדכן אתכם על נטישות ויעדכן את המצב השמור לפעם הבאה. קצר ועושה את העבודה.

import twitter, os, pickle

username = ‘replace_this_with_your_twitter_username’

password = ‘replace_this_with_your_twitter_password’

filename = ‘followers.dat’

api = twitter.Api(username, password)

# build a list of all current followers names

current = [f.screen_name for f in api.GetFollowers()]

if os.path.isfile(filename):

with open(filename) as f:

prev = pickle.load(f)

left = filter(lambda x:x not in current, prev)

if left : print “The Followers Who Left: “, left

with open(filename, ‘w’) as f:

pickle.dump(current, f)

החברים החדשים

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

import twitter

username = ‘replace_this_with_your_twitter_username’

password = ‘replace_this_with_your_twitter_password’

api = twitter.Api(username, password)

friends = [f.screen_name for f in api.GetFriends()]
results = { }

i=0

for screen_name in friends:

i = i + 1

try:

f2 = api.GetFriends(screen_name)

except HTTPError:

continue

for g in f2:

if g.screen_name in friends : continue
results[g.screen_name] = results.get(g.screen_name, 0) + 1

print i,”/”,len(friends)

for i in range(0,5):

inv = dict(map(lambda item: (item[1],item[0]),results.items()))

max_key = inv[max(inv.keys())]

next = results.pop(max_key)

print next,”=>”,max_key

לסיכום

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

לקריאה והרחבה נוספת על פייתון: http://docs.python.org/tutorial

ינון פרק

מפתח יישומי צד-לקוח בטכנולוגיות Web ו Mobile. כותב ומלמד קורסים לחברות תוכנה ואונליין באתר ToCode

הגב

4 תגובות על "פייתון בשירות המצייצים – סקריפטים שישפרו לנו את הטוויטר"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
אור
Guest

איזה כיף לראות אובונטו בצילומי המסך :)

ik
Guest

מה רע בתסריט bash פשוט שמשתמש ב curl שעושה בדיוק אותו הדבר בפחות פעולות ?

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

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

ינון
Guest

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

itweetlive
Guest

נשמע די מגניב אבל מסובך . אם רוצים להזין RSS או רוצים להרים חשבון טויטר שהוא אוטומטיאו חצי אוטומטי אני ממליץ על http://itweetlive.com
לא צריך לדעת שום תכנות והוא מבצע שיחות יפה עם אלפי אנשים על בסיס דברים שאת מחליטה מראש

wpDiscuz

תגיות לכתבה: