מייקינג מאני, גרסת הפייתון

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

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

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

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

http://texts.corporate.com/overview?id=123456789

אז הקישור הרלוונטי-לי שבתוכו נראה ככה:

http://texts.corporate.com/details?id=123456789&owner=pikachu

כלומר, אם נתון לי קישור לדף ביניים, אני יכול פשוט להחליף את המילה overview במילה details, להוסיף את הטקסט "&owner=pikachu", ואקבל את הקישור הנכון לדף היעד. גם את זה קל מאוד לבצע בפייתון בפעולות בסיסיות על מחרוזות.

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

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

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

להרשמה
הודע לי על
2 Comments
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

זה נשמע כאילו היית צריך לעשות סוג של webscraping…
אפשר להשתמש בספריית ה requests בשביל לקחת ישירות תוצאות מקישורי http.