ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 18/03/2009 - 13:17
נושא ההודעה: מדריך לשימוש ב-iMacros לאוטומציית אתרי אינטרנט

זה הרבה יותר מדריך (ואפילו ארוך, מצטער) מאשר טיפ, אבל נראה לי שזה עדיין מתאים פה, נכון?

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

מימוש
עכשיו ששוכנענו שזה שימושי (ואפילו לגיטימי לפעמים) הגיע הזמן לראות איך לממש את זה.
השיטה הקלאסית (ומן הסתם גם היותר נכונה), תבוצע בעזרת שפת תכנות כלשהי, בשימוש עם ספריה מתאימה לתקשורת עם האינטרנט.
המימוש שנראה לי הנוח ביותר בשיטה הזאת, הוא שימוש בפייתון בעזרת ספריית ה - cgi המובנית, או בעזרת ספריות נוספות כגון זאת:
http://wwwsearch.sourceforge.net/mechanize/

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


iMacros:
הדבר שפתר לי את הבעיות הללו הוא תוסף חביב לפירפוקס בשם iMacros.
https://addons.mozilla.org/en-US/firefox/addon/3863
http://en.wikipedia.org/wiki/IMacros

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

את זאת נדגים בעזרת הדוגמא הבאה:

העלאת המון סקרינשוטים לאתר העלאות:
נניח שיש לנו תקייה בשם screenshots על הדסקטופ שבה שמורים לא פחות מ - 42,350 סקרינשוטים מהממים של שולחן העבודה שלנו, וברצוננו להעלות אותם לאתר כלשהו, נניח -
http://www.freeimagehosting.net/.

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

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

תמונה להמחשה:
Image

עכשיו אפשר ללחוץ על סטופ, ולשמור את המקרו.

נפתח את המקרו בעזרת עורך טקסט, והקובץ יראה כך:
קוד:

VERSION BUILD=6111228 RECORDER=FX
TAB T=1
URL GOTO=http://www.freeimagehosting.net/
TAG POS=1 TYPE=INPUT:FILE FORM=NAME:form1 ATTR=NAME:attached CONTENT=$FILEPATH
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:form1 ATTR=ID:b
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:directforum1 CONTENT=עכעכגעכג

כאשר $FILEPATH זה כמובן הנתיב לקובץ שצירפנו.

נחליף בשורה האחרונה את הערך CONTENT=x ל - EXTRACT=TXT, כך שתראה כך:
קוד:

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:image EXTRACT=TXT

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

נוסיף את השורה
קוד:

SAVEAS TYPE=EXTRACT FOLDER=$any_folder FILE=$any_file


וכעת כל המידע שהמקרו הוציא ישמר בקובץ שציינו בתקייה $any_folder בשם $any_file

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

(כדי שלא יטרח כל פעם להודיע לנו מה המידע שהוא שאב, אפשר להוסיף את השורה
SET !EXTRACT_TEST_POPUP NO לתחילת הקובץ).

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

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

#! /bin/sh

#Head of macro
base="VERSION BUILD=6111228 RECORDER=FX"'\n'
base+="TAB T=1"'\n'
base+="TAB CLOSEALLOTHERS"'\n'
base+="SET !EXTRACT_TEST_POPUP NO"'\n'

echo -e $base > macro.iim

#loop over every file in the given directory
find $folder-with-files/* | while read LINE ; do
   macro="URL GOTO=http://www.freeimagehosting.net/upload.php"'\n'
   macro+="TAG POS=1 TYPE=INPUT:FILE FORM=NAME:form1 ATTR=NAME:attached"
   macro+=" CONTENT="$LINE'\n'
   macro+="TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:form1 ATTR=ID:b"'\n'
   macro+="TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:directforum1 EXTRACT=TXT"'\n''\n'

   echo -e $macro >> macro.iim
done

echo "SAVEAS TYPE=EXTRACT FOLDER=$any_folder FILE=$any_file” >> macro.iim


נריץ (לא מתוך התקייה עם התמונות!), וזהו, המאקרו מוכן.

נפתח מחדש את הדפדפן, נבחר את המקרו שנוצר לנו, ונריץ אותו.
בהנחה שהכל עבד כמו שצריך, הדפדפן יתחיל להעלות בשבילנו את כל התמונות שבתקייה (זהירות, זה יקח הרבה זמן אם יש הרבה תמונות, ועדיף לא להפריע לו באמצע [אפילו עם טאבים אחרים] - זה לפעמים מחרפן אותו, ואז צריך הכל מהתחלה Confused)
ובסוף ייוצר לנו קובץ עם כל הלינקים לתמונות מופרדים בפסיקים. Very Happy
עכשיו עושים מה שרוצים עם הלינקים האלה (משחקים עם sed ו grep יוכלו להפוך גם את זה לאוטומטי, אבל אלה שיעורי בית).

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

מקווה שזה יועיל למישהו,
משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
redbaronלא בפורום כעת ת.הצטרפות: 15/06/2003 · הודעות: 682 · מיקום: dev/null/
 

הודעה פורסם: 28/07/2009 - 09:58
נושא ההודעה:

אחלה מדריך....

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

גילי

_________________
*"My software never has bugs. It just develops random features." *
*Best file compression around: "rm -rf /" = 100% compression*
*ASCII stupid question, get a stupid ANSI! *
*Err
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. משה
  2. redbaron