- הוסף לסימניות
- #1
http://feedproxy.google.com/~r/newsgeekfeed/~3/c3sqe-dZiu8/
http://www.newsgeek.co.il/python-tw...utm_campaign=Feed:+newsgeekfeed+(Newsgeek)#
<div class="openx_banner"><script type="text/javascript" src="http://ads.newsgeek.co.il/www/delivery/fl.js"></script><script type="text/javascript"> OXM_ad = {"website":"649beb64-e19c-49d1-962c-3318b5a1c91c", "size":"468x60", "floor":"0.1", "channel":"oxpv1:20-26-42-1-11", "beacon":"<div id='beacon_2f2c97ddef' style='position: absolute; left: 0px; top: 0px; visibility: hidden;'>
<\/div>", "fallback":"\n<div id='ox_17d8ebcb9047a30a15761f067074258a' style='display: inline;'><a href='http:\/\/ads.newsgeek.co.il\/www\/delivery\/ck.php?oaparams=2__bannerid=31__zoneid=11__cb=2f2c97ddef__oadest=http%3A%2F%2Fwww.rgc.co.il%2Fads%2Fhutz%2F0510%2F%3FToolId%3DV5WY63%26website%3DNewsgeek_arc' target='blank'>
<\/a><\/div>\n<script type='text\/javascript'><!--\/\/ <![CDATA[\n var ox_swf = new FlashObject('http:\/\/ads.newsgeek.co.il\/www\/images\/9ab8c9e0ef48e34a8e1b2ef9f26551dd.swf', 'מכללת רמת גן', '468', '60', '8');\n ox_swf.addVariable('clickTARGET', '_blank');\n ox_swf.addVariable('clickTAG', 'http%3A%2F%2Fads.newsgeek.co.il%2Fwww%2Fdelivery%2Fck.php%3Foaparams%3D2__bannerid%3D31__zoneid%3D11__cb%3D2f2c97ddef__oadest%3Dhttp%253A%252F%252Fwww.rgc.co.il%252Fads%252Fhutz%252F0510%252F%253FToolId%253DV5WY63%2526website%253DNewsgeek_arc');\n\n ox_swf.addParam('allowScriptAccess','always');\n ox_swf.write('ox_17d8ebcb9047a30a15761f067074258a');\n if (ox_swf.installedVer.versionIsValid(ox_swf.getAttribute('version'))) { document.write(\"<div id='beacon_2f2c97ddef' style='position: absolute; left: 0px; top: 0px; visibility: hidden;'>
<\/div>\"); } else { document.write(\"<div id='beacon_2f2c97ddef' style='position: absolute; left: 0px; top: 0px; visibility: hidden;'>
<\/div>\"); }\n\/\/ ]]> --><\/script><noscript>
<\/div><\/noscript>"}; </script> <script type="text/javascript" src="http://bid.openx.net/jstag"></script> <noscript> 
<script type='text/javascript'><!--// <![CDATA[ var ox_swf = new FlashObject('http://ads.newsgeek.co.il/www/images/9ab8c9e0ef48e34a8e1b2ef9f26551dd.swf', 'מכללת רמת גן', '468', '60', '8'); ox_swf.addVariable('clickTARGET', '_blank'); ox_swf.addVariable('clickTAG', 'http%3A%2F%2Fads.newsgeek.co.il%2Fwww%2Fdelivery%2Fck.php%3Foaparams%3D2__bannerid%3D31__zoneid%3D11__cb%3D2f2c97ddef__oadest%3Dhttp%253A%252F%252Fwww.rgc.co.il%252Fads%252Fhutz%252F0510%252F%253FToolId%253DV5WY63%2526website%253DNewsgeek_arc'); ox_swf.addParam('allowScriptAccess','always'); ox_swf.write('ox_17d8ebcb9047a30a15761f067074258a'); if (ox_swf.installedVer.versionIsValid(ox_swf.getAttribute('version'))) { document.write("
"); } else { document.write("
"); } // ]]> --></script><noscript>
</noscript>
טוויטר הפך לא מכבר לשירות פופולארי בקרב בלוגרים, פעילי מדיה ופשוטי העם גם יחד. פשטות הממשק ונוחיות העדכון מכל מקום מאפשרים לכל אחת לעדכן ולהתעדכן בחדשות ואירועים שונים. לפשטות זו יש מחיר, והוא המחסור בפיצ'רים שהיו יכולים לשפר את חוויות הציוץ שלנו. בפוסט זה אציג דוגמאות לשיפור חווית הטוויטר שלנו תוך שימוש בבוטים הכתובים בפייתון.
בחרתי להציג את הסקריפטים בפייתון מאחר ופייתון הוא שפה קלה ונוחה. גם מי שלא כתבה מימיה תוכנית פייתון לא תתקשה להבין את הדוגמאות ולהרחיב אותן למקרים המעניינים כל אחת ואחד. לפייתון יש ספריות הרחבה רבות המאפשרות גישה פשוטה לשירותי רשת שונים. בפוסט זה אשתמש בהרחבות שכאלה לצורך ההתקשרות עם טוויטר.
הכלים
הדוגמאות
אציג כאן שלוש דוגמאות לתוכניות פייתון המתממשקות עם טוויטר. הראשונה משתמשת בפיד של עוגיות מזל כדי לצייץ באופן אוטומטי משפטי חוכמה; השנייה תספר לנו מי היה העוקב שעזב והשלישית תמליץ על אנשים חדשים לעקוב אחריהם, בהתבסס על חברים משותפים. אל כל הדוגמאות פה כדאי להתייחס בתור בסיס, ולקחת ולהתאים כל אחת לצרכים של כל קורא וקוראת.
פוסט זה אינו מדריך לשפת פייתון, וגם אינו מתיימר להיות. אני מכוון לתת כאן רעיונות וחשק ללמוד למי שמכיר וגם למי שאינו מכיר. לאלו מהקוראים החדשים לשפה, בשביל להריץ את הדוגמאות יש להעתיק אותן כפי שהן לתוך קובץ (כולל הריווח המדויק – בפייתון יש חשיבות גם לאינדנטציה), ולשמור בסיומת py. לאחר מכן, ניתן להריץ על ידי הפעלת הפקודה הבאה מתוך ה command של חלונות (בהנחה שקראתם לקובץ script.py):
הצייצן האוטומטי
המצייץ האוטומטי משתמש באתר http://wertarbyte.de/gigaset-rsss כדי לקבל רעיונות לציטוטים ברסס. כל פעם שנפעיל תוכנית זו, היא תקח משפט אקראי ותצייץ אותו לכל קוראינו. את תוכנית זו נוכל להפעיל כמשימה מתוזמנת על המחשב, וכך להמשיך לעדכן את הפיד גם כשאנחנו בטיול של שבועות הרחק מהמחשב.
תוכנית זו משתמשת בשני מודולים, האחד twitter, מספק את כל הממשק עם הטויטר שלנו. כאן אנחנו משתמשים רק בפונקציה של עדכון הפיד. המודול השני, feedparser מאפשר קריאה של שירותי RSS. אנו משתמשים בו כדי לקרוא את הרסס של הציטוטים. ניתן, כמובן, להחליף לכל רסס מעניין אחר (כמו Newsgeek).
כדי להפעיל את התוכנית, יש למלא את שם המשתמש והסיסמא במקומות המתאימים
לעוקבשעזב: גם אני יודע מי אתה
שירותים כמו quitter אולי נראים לנו כמו קסם, אך למעשה הם מבוססים על רעיון מאוד פשוט – אם רק ארשום כמה עוקבים יש לי היום, אוכל להסתכל מחר ברשימה ולראות מי כבר לא שם. אז נכון, כולנו עושים זאת מדי פעם, אבל למה להתאמץ כשאפשר להפוך את התהליך כולו לאוטומטי לחלוטין? הסקריפט הבא ישמור (בתיקייה הנוכחית) בהפעלה הראשונה את רשימת העוקבים שלכם לקובץ. מכאן והלאה, כל פעם שנפעיל אותו באותה התיקייה הוא ישווה את המצב בפועל עם המצב השמור, יעדכן אתכם על נטישות ויעדכן את המצב השמור לפעם הבאה. קצר ועושה את העבודה.
החברים החדשים
התוכנית האחרונה מיישמת רעיון להכרת חברים חדשים. אם הרבה מהאנשים שאני עוקב אחריהם עוקבים אחרי חבר נוסף (שאני לא עוקב אחריו), אולי כדאי לי לנסות לסמוך עליהם ולעקוב אחריו גם. פייסבוק כבר מזמן מציע לנו חברים חדשים באופן זה, ובעזרת פייתון נוכל ליישם את הרעיון גם על טוויטר. התוכנית תעבור על רשימת החברים של החברים שלנו באופן אוטומטי, ותדפיס את חמשת משתמשי הטוויטר הפופולריים ביותר בקרב נעקביי.
לסיכום
ראינו שלוש תוכניות פייתון לשיפור חווית הטוויטר שלנו. בכולן לקחנו רעיון שהיה קשה או מסורבל לממש לבד, והשתמשנו בפייתון כדי לבצע אותו באופן מהיר ויעיל. זהו כמובן רק קצה הקרחון. כלים אוטומטיים כמו פייתון מספקים לנו את היכולת לקחת את הרעיונות הפשוטים שלנו, ומהר מאוד להרים מהם חוויה שעובדת.
לקריאה והרחבה נוספת על פייתון: http://docs.python.org/tutorial
http://www.newsgeek.co.il/python-tw...utm_campaign=Feed:+newsgeekfeed+(Newsgeek)#
<div class="openx_banner"><script type="text/javascript" src="http://ads.newsgeek.co.il/www/delivery/fl.js"></script><script type="text/javascript"> OXM_ad = {"website":"649beb64-e19c-49d1-962c-3318b5a1c91c", "size":"468x60", "floor":"0.1", "channel":"oxpv1:20-26-42-1-11", "beacon":"<div id='beacon_2f2c97ddef' style='position: absolute; left: 0px; top: 0px; visibility: hidden;'>

<script type='text/javascript'><!--// <![CDATA[ var ox_swf = new FlashObject('http://ads.newsgeek.co.il/www/images/9ab8c9e0ef48e34a8e1b2ef9f26551dd.swf', 'מכללת רמת גן', '468', '60', '8'); ox_swf.addVariable('clickTARGET', '_blank'); ox_swf.addVariable('clickTAG', 'http%3A%2F%2Fads.newsgeek.co.il%2Fwww%2Fdelivery%2Fck.php%3Foaparams%3D2__bannerid%3D31__zoneid%3D11__cb%3D2f2c97ddef__oadest%3Dhttp%253A%252F%252Fwww.rgc.co.il%252Fads%252Fhutz%252F0510%252F%253FToolId%253DV5WY63%2526website%253DNewsgeek_arc'); ox_swf.addParam('allowScriptAccess','always'); ox_swf.write('ox_17d8ebcb9047a30a15761f067074258a'); if (ox_swf.installedVer.versionIsValid(ox_swf.getAttribute('version'))) { document.write("
"); } else { document.write("
"); } // ]]> --></script><noscript>
</noscript>
טוויטר הפך לא מכבר לשירות פופולארי בקרב בלוגרים, פעילי מדיה ופשוטי העם גם יחד. פשטות הממשק ונוחיות העדכון מכל מקום מאפשרים לכל אחת לעדכן ולהתעדכן בחדשות ואירועים שונים. לפשטות זו יש מחיר, והוא המחסור בפיצ'רים שהיו יכולים לשפר את חוויות הציוץ שלנו. בפוסט זה אציג דוגמאות לשיפור חווית הטוויטר שלנו תוך שימוש בבוטים הכתובים בפייתון.
בחרתי להציג את הסקריפטים בפייתון מאחר ופייתון הוא שפה קלה ונוחה. גם מי שלא כתבה מימיה תוכנית פייתון לא תתקשה להבין את הדוגמאות ולהרחיב אותן למקרים המעניינים כל אחת ואחד. לפייתון יש ספריות הרחבה רבות המאפשרות גישה פשוטה לשירותי רשת שונים. בפוסט זה אשתמש בהרחבות שכאלה לצורך ההתקשרות עם טוויטר.
הכלים
- פייתון – שפת Object Oriented משנות ה 90, שקיבלה את שמה מחבורת קומיקאים בריטים. ניתן להוריד מפרש פייתון לחלונות מהאתר של פייתון (הדוגמאות כאן נבדקו על גירסא 2.7 אך אמורות לרוץ באופן תקין גם על גירסא 3).
- פייתון-טוויטר – מודול התממשקות עם טוויטר. ניתן להורדה בחינם. הוראות התקנה מפורטות באותו האתר.
- פייתון Feedparser – מודול לפענוח RSS Feeds. ניתן להורדה בחינם מאתר המודול.
הדוגמאות
אציג כאן שלוש דוגמאות לתוכניות פייתון המתממשקות עם טוויטר. הראשונה משתמשת בפיד של עוגיות מזל כדי לצייץ באופן אוטומטי משפטי חוכמה; השנייה תספר לנו מי היה העוקב שעזב והשלישית תמליץ על אנשים חדשים לעקוב אחריהם, בהתבסס על חברים משותפים. אל כל הדוגמאות פה כדאי להתייחס בתור בסיס, ולקחת ולהתאים כל אחת לצרכים של כל קורא וקוראת.
פוסט זה אינו מדריך לשפת פייתון, וגם אינו מתיימר להיות. אני מכוון לתת כאן רעיונות וחשק ללמוד למי שמכיר וגם למי שאינו מכיר. לאלו מהקוראים החדשים לשפה, בשביל להריץ את הדוגמאות יש להעתיק אותן כפי שהן לתוך קובץ (כולל הריווח המדויק – בפייתון יש חשיבות גם לאינדנטציה), ולשמור בסיומת py. לאחר מכן, ניתן להריץ על ידי הפעלת הפקודה הבאה מתוך ה command של חלונות (בהנחה שקראתם לקובץ script.py):
python.exe script.py
הצייצן האוטומטי
המצייץ האוטומטי משתמש באתר http://wertarbyte.de/gigaset-rsss כדי לקבל רעיונות לציטוטים ברסס. כל פעם שנפעיל תוכנית זו, היא תקח משפט אקראי ותצייץ אותו לכל קוראינו. את תוכנית זו נוכל להפעיל כמשימה מתוזמנת על המחשב, וכך להמשיך לעדכן את הפיד גם כשאנחנו בטיול של שבועות הרחק מהמחשב.
תוכנית זו משתמשת בשני מודולים, האחד twitter, מספק את כל הממשק עם הטויטר שלנו. כאן אנחנו משתמשים רק בפונקציה של עדכון הפיד. המודול השני, feedparser מאפשר קריאה של שירותי RSS. אנו משתמשים בו כדי לקרוא את הרסס של הציטוטים. ניתן, כמובן, להחליף לכל רסס מעניין אחר (כמו Newsgeek).
כדי להפעיל את התוכנית, יש למלא את שם המשתמש והסיסמא במקומות המתאימים
קוד:
[LEFT]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)[/LEFT]
שירותים כמו 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)
התוכנית האחרונה מיישמת רעיון להכרת חברים חדשים. אם הרבה מהאנשים שאני עוקב אחריהם עוקבים אחרי חבר נוסף (שאני לא עוקב אחריו), אולי כדאי לי לנסות לסמוך עליהם ולעקוב אחריו גם. פייסבוק כבר מזמן מציע לנו חברים חדשים באופן זה, ובעזרת פייתון נוכל ליישם את הרעיון גם על טוויטר. התוכנית תעבור על רשימת החברים של החברים שלנו באופן אוטומטי, ותדפיס את חמשת משתמשי הטוויטר הפופולריים ביותר בקרב נעקביי.
קוד:
[LEFT]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[/LEFT]
ראינו שלוש תוכניות פייתון לשיפור חווית הטוויטר שלנו. בכולן לקחנו רעיון שהיה קשה או מסורבל לממש לבד, והשתמשנו בפייתון כדי לבצע אותו באופן מהיר ויעיל. זהו כמובן רק קצה הקרחון. כלים אוטומטיים כמו פייתון מספקים לנו את היכולת לקחת את הרעיונות הפשוטים שלנו, ומהר מאוד להרים מהם חוויה שעובדת.
לקריאה והרחבה נוספת על פייתון: http://docs.python.org/tutorial
הנושאים החמים