דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. בינה מלאכותית - AI
  5. עזרה הדדית - בינה מלאכותית
  6. המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

מתוזמן נעוץ נעול הועבר עזרה הדדית - בינה מלאכותית
201 פוסטים 40 כותבים 19.3k צפיות 37 Watching
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • M MAKRO

    @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

    קלוד לא בדקתי

    @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

    נ מנותק
    נ מנותק
    נעזר1000
    כתב נערך לאחרונה על ידי נעזר1000
    #133

    @MAKRO כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

    @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

    קלוד לא בדקתי

    @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

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

    ומנצל את ההזדמנות להודות לו על הטיפ הזה.

    תגובה 1 תגובה אחרונה
    1
    • M MAKRO

      @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

      קלוד לא בדקתי

      @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

      NH.LOCALN מנותק
      NH.LOCALN מנותק
      NH.LOCAL
      מדריכים
      כתב נערך לאחרונה על ידי
      #134

      @MAKRO כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

      @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

      קלוד לא בדקתי

      @NH-LOCAL כתב שכיום, החינמי שלהם כבר לא משהו...

      זה השתנה כעת שוב, הם החזירו את המודל הטוב שלהם למשתמשים החינמיים ממש אתמול!

      לאינדקס המלא של כלל הסקריפטים שלי
      https://nhlocal.github.io

      תגובה 1 תגובה אחרונה
      3
      • צ צללית

        @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
        קלוד לא בדקתי

        NH.LOCALN מנותק
        NH.LOCALN מנותק
        NH.LOCAL
        מדריכים
        כתב נערך לאחרונה על ידי NH.LOCAL
        #135

        @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

        @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
        קלוד לא בדקתי

        כבר לא ממש נכון. ממליץ להסתכל על המדד livebench שמודד יכולות של מודלי AI בכמה פרמטרים מרכזיים.

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

        לאינדקס המלא של כלל הסקריפטים שלי
        https://nhlocal.github.io

        צ תגובה 1 תגובה אחרונה
        3
        • NH.LOCALN NH.LOCAL

          @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

          @MAKRO אם השאלה היא gemini מול chat-gpt - ברור שchat-gpt עולה בכמה רמות. ובתוך chat-gpt יש כמה מודלים, יש את היותר טוב בחינם ואחרי כמה שאלות זה יורד, ועדיין זה יותר טוב מג'מיני
          קלוד לא בדקתי

          כבר לא ממש נכון. ממליץ להסתכל על המדד livebench שמודד יכולות של מודלי AI בכמה פרמטרים מרכזיים.

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

          צ מנותק
          צ מנותק
          צללית
          כתב נערך לאחרונה על ידי
          #136

          @NH-LOCAL אני כתבתי מהניסיון שלי, יתכן שבאמת זה תלוי במשימות. בכל הפעמים שבדקתי אותו דבר בשניהם, chat-gpt היה יותר ממוקד ומדויק ועם פחות הזיות. וגם כשהיה צריך לתקן את עצמו הוא הבין יותר מהר את נקודת הבעיה.

          תגובה 1 תגובה אחרונה
          0
          • sivan22S sivan22

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

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

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

            כאן אני אתן פירוט על שלשה כלים כאלו:

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

            השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

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

            צ מנותק
            צ מנותק
            צללית
            כתב נערך לאחרונה על ידי
            #137

            @sivan22 ניסיתי היום להשתמש בwindsurf ומשום מה כל פעם שהוא מנסה ליצור קובץ הוא נתקל בשגיאה הבאה:

            ErrorCascade cannot propose edits to files that do not exist.
            איך אני יכול לפתור את זה?

            מ תגובה 1 תגובה אחרונה
            0
            • צ צללית

              @sivan22 ניסיתי היום להשתמש בwindsurf ומשום מה כל פעם שהוא מנסה ליצור קובץ הוא נתקל בשגיאה הבאה:

              ErrorCascade cannot propose edits to files that do not exist.
              איך אני יכול לפתור את זה?

              מ מנותק
              מ מנותק
              מדהים
              כתב נערך לאחרונה על ידי
              #138

              @צללית אולי לפתוח עם הרשאות מנהל 🤔

              צ תגובה 1 תגובה אחרונה
              1
              • מ מדהים

                @צללית אולי לפתוח עם הרשאות מנהל 🤔

                צ מנותק
                צ מנותק
                צללית
                כתב נערך לאחרונה על ידי צללית
                #139

                @מדהים אבדוק
                למרות שבשביל ליצור קבצים לא צריך להיות מנהל.
                עריכה: בדקתי ולא עזר

                תגובה 1 תגובה אחרונה
                0
                • sivan22S sivan22

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

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

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

                  כאן אני אתן פירוט על שלשה כלים כאלו:

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

                  השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

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

                  sivan22S מנותק
                  sivan22S מנותק
                  sivan22
                  כתב נערך לאחרונה על ידי
                  #140

                  @sivan22
                  עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

                  י תגובה 1 תגובה אחרונה
                  2
                  • sivan22S sivan22 התייחס לנושא זה
                  • sivan22S sivan22

                    @sivan22
                    עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

                    י מנותק
                    י מנותק
                    יעקב 4
                    כתב נערך לאחרונה על ידי
                    #141

                    @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                    @sivan22
                    עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

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

                    צ תגובה 1 תגובה אחרונה
                    0
                    • י יעקב 4

                      @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                      @sivan22
                      עדכון (ערכתי גם את הפוסט למעלה): ההמלצה הנוכחית שלי היא להשתמש בCline עם API חינמי של גוגל. אמנם מדי פעם הוא נעצר, אבל סך הכל אפשר לעבוד איתו, והוא כמובן חינמי.

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

                      צ מנותק
                      צ מנותק
                      צללית
                      כתב נערך לאחרונה על ידי
                      #142

                      @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                      י תגובה 1 תגובה אחרונה
                      1
                      • צ צללית

                        @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                        י מנותק
                        י מנותק
                        יעקב 4
                        כתב נערך לאחרונה על ידי
                        #143

                        @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                        @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                        אוקי אתה מסתמא מתכוון לזה:
                        b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

                        ואז להכניס אותו פה:
                        ecd10373-8a67-4e3f-a5bc-62b866270a61-image.png

                        זה מה שקורה:
                        612fe87a-f17c-486f-b28d-7bf6218542d3-image.png

                        צ תגובה 1 תגובה אחרונה
                        0
                        • י יעקב 4

                          @צללית כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                          @יעקב-4 יש הסבר למעלה בפוסט הראשון, נכנסים לקישור שמובא שם ומקבלים מפתח API בתוכנה יש מקום ברור לשים אותו מיד בהתחלה אחרי שאתה גומר להתקין את התוסף בתוך הVSCODE, צריך לבחור מתוך הרשימה את GEMINI של google ומתחת זה יש מקום להכניס מפתח API

                          אוקי אתה מסתמא מתכוון לזה:
                          b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

                          ואז להכניס אותו פה:
                          ecd10373-8a67-4e3f-a5bc-62b866270a61-image.png

                          זה מה שקורה:
                          612fe87a-f17c-486f-b28d-7bf6218542d3-image.png

                          צ מנותק
                          צ מנותק
                          צללית
                          כתב נערך לאחרונה על ידי צללית
                          #144

                          @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                          אוקי אתה מסתמא מתכוון לזה:
                          https://mitmachim.top/assets/uploads/files/1735056799181-b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

                          לא להעתיק את כל מה שיש שם, אלא שם ללחוץ על יצירת מפתח API, ואז להעתיק את המפתח שנוצר

                          API.PNG

                          י תגובה 1 תגובה אחרונה
                          2
                          • צ צללית

                            @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                            אוקי אתה מסתמא מתכוון לזה:
                            https://mitmachim.top/assets/uploads/files/1735056799181-b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

                            לא להעתיק את כל מה שיש שם, אלא שם ללחוץ על יצירת מפתח API, ואז להעתיק את המפתח שנוצר

                            API.PNG

                            י מנותק
                            י מנותק
                            יעקב 4
                            כתב נערך לאחרונה על ידי
                            #145

                            @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

                            צ NH.LOCALN 2 תגובות תגובה אחרונה
                            0
                            • י יעקב 4

                              @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

                              צ מנותק
                              צ מנותק
                              צללית
                              כתב נערך לאחרונה על ידי
                              #146

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

                              י תגובה 1 תגובה אחרונה
                              1
                              • צ צללית

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

                                י מנותק
                                י מנותק
                                יעקב 4
                                כתב נערך לאחרונה על ידי
                                #147

                                @צללית @sivan22
                                נתקע לי כל פעם בהרצת פקודות בטרמינל

                                תגובה 1 תגובה אחרונה
                                0
                                • י יעקב 4

                                  @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

                                  NH.LOCALN מנותק
                                  NH.LOCALN מנותק
                                  NH.LOCAL
                                  מדריכים
                                  כתב נערך לאחרונה על ידי
                                  #148

                                  @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                  @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

                                  לא סביר, כי המגבלה מאוד גבוהה, זה לא אמור להיגמר כל כך מהר

                                  לאינדקס המלא של כלל הסקריפטים שלי
                                  https://nhlocal.github.io

                                  צ תגובה 1 תגובה אחרונה
                                  0
                                  • EBAE EBA

                                    @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                    א"א לתכנת בלי לדעת תכנות.

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

                                    יצא מדהים, הקוד בספויילר.

                                    from selenium import webdriver
                                    from selenium.webdriver.chrome.service import Service
                                    from selenium.webdriver.chrome.options import Options
                                    from selenium.webdriver.common.by import By
                                    from selenium.webdriver.support.ui import WebDriverWait
                                    from selenium.webdriver.support import expected_conditions as EC
                                    import time
                                    import os
                                    import json
                                    from datetime import datetime
                                    from dotenv import load_dotenv
                                    from bidi.algorithm import get_display
                                    
                                    def display_rtl(text):
                                        """מציג טקסט בעברית בכיוון הנכון"""
                                        return get_display(text)
                                    
                                    load_dotenv()
                                    
                                    class ListingUpdater:
                                        def __init__(self):
                                            print(display_rtl("מאתחל את דפדפן Chrome..."))
                                            self.cookies_file = "yad2_cookies.json"
                                            self.setup_driver()
                                            
                                        def setup_driver(self):
                                            chrome_options = Options()
                                            chrome_options.add_argument('--disable-gpu')
                                            chrome_options.add_argument('--no-sandbox')
                                            chrome_options.add_argument('--disable-dev-shm-usage')
                                            chrome_options.add_argument('--start-maximized')
                                            chrome_options.add_experimental_option("detach", True)
                                            
                                            try:
                                                self.driver = webdriver.Chrome(options=chrome_options)
                                                print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                                                raise
                                    
                                        def save_cookies(self):
                                            cookies = self.driver.get_cookies()
                                            with open(self.cookies_file, 'w') as f:
                                                json.dump(cookies, f)
                                            print(display_rtl("נשמרו עוגיות בהצלחה"))
                                    
                                        def load_cookies(self):
                                            try:
                                                with open(self.cookies_file, 'r') as f:
                                                    cookies = json.load(f)
                                                
                                                # Navigate to the domain first
                                                self.driver.get('https://www.yad2.co.il')
                                                time.sleep(2)
                                                
                                                # Add the cookies
                                                for cookie in cookies:
                                                    self.driver.add_cookie(cookie)
                                                
                                                print(display_rtl("עוגיות נטענו בהצלחה"))
                                                return True
                                            except FileNotFoundError:
                                                print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                                                return False
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                                                return False
                                    
                                        def check_login_status(self):
                                            try:
                                                print(display_rtl("בודק סטטוס התחברות..."))
                                                # First go to main page
                                                self.driver.get('https://www.yad2.co.il')
                                                time.sleep(3)
                                                
                                                # Then try to access my-ads
                                                print(display_rtl("מנסה לגשת לאזור האישי..."))
                                                self.driver.get('https://www.yad2.co.il/my-ads')
                                                time.sleep(10)  # תן יותר זמן לטעינה
                                                
                                                # Check if we're actually on the my-ads page
                                                current_url = self.driver.current_url
                                                print(display_rtl(f"כתובת נוכחית: {current_url}"))
                                                
                                                if "my-ads" in current_url:
                                                    print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                                                    return True
                                                else:
                                                    print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                                                    return False
                                                    
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                                                return False
                                    
                                        def manual_login(self):
                                            print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                                            print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                                            print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                                            print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                                            
                                            self.driver.get('https://www.yad2.co.il/auth/login')
                                            
                                            # Wait for successful login
                                            WebDriverWait(self.driver, 300).until(
                                                lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                                            )
                                            
                                            print(display_rtl("התחברת בהצלחה!"))
                                            self.save_cookies()
                                    
                                        def update_listings(self):
                                            try:
                                                print(display_rtl("מנווט לדף המודעות שלי..."))
                                                self.navigate_to_my_ads()
                                                
                                                # מחפש את כפתורי ההקפצה
                                                print(display_rtl("\nמחפש כפתורי הקפצה..."))
                                                bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                
                                                if not bump_buttons:
                                                    print(display_rtl("לא נמצאו כפתורי הקפצה"))
                                                    return False
                                                
                                                print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                                                
                                                # עובר על כל כפתור הקפצה
                                                for i in range(len(bump_buttons)):
                                                    try:
                                                        # מנווט מחדש לדף המודעות בכל פעם
                                                        self.navigate_to_my_ads()
                                                        
                                                        print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                                        
                                                        # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                                        bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                        if i >= len(bump_buttons):
                                                            print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                                            break
                                                            
                                                        button = bump_buttons[i]
                                                        print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                                        
                                                        # בודק אם הכפתור מושבת
                                                        if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                                            print(display_rtl("הכפתור מושבת"))
                                                            continue
                                                        
                                                        # גולל לכפתור
                                                        self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                                        time.sleep(1)
                                                        
                                                        # מנסה ללחוץ באמצעות JavaScript
                                                        print("מנסה ללחוץ על כפתור ההקפצה...")
                                                        self.driver.execute_script("arguments[0].click();", button)
                                                        print("לחיצה על כפתור ההקפצה")
                                                        
                                                        # מחכה קצת ואז מרענן את הדף
                                                        time.sleep(2)
                                                        print("מרענן את הדף...")
                                                        self.driver.refresh()
                                                        
                                                        # מחכה לטעינת הדף
                                                        print("ממתין לטעינת הדף...")
                                                        self.wait_for_page_load()
                                                        print("הדף נטען")
                                                        
                                                        # מחכה קצת זמן אחרי ההקפצה
                                                        time.sleep(3)
                                                        
                                                    except Exception as e:
                                                        print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                                        if hasattr(e, 'msg'):
                                                            print(f"Message: {e.msg}")
                                                
                                                return True
                                                
                                            except Exception as e:
                                                print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                                                if hasattr(e, 'msg'):
                                                    print(f"Message: {e.msg}")
                                                return False
                                                
                                        def navigate_to_my_ads(self):
                                            """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                                            self.driver.get('https://www.yad2.co.il/my-ads')
                                            
                                            # מחכה שהדף יטען
                                            print(display_rtl("ממתין לטעינת הדף..."))
                                            WebDriverWait(self.driver, 30).until(
                                                lambda driver: driver.execute_script("return document.readyState") == "complete"
                                            )
                                            
                                            # מחכה שה-splash screen ייעלם
                                            print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                                            try:
                                                splash_screen = WebDriverWait(self.driver, 10).until(
                                                    EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                                                )
                                                WebDriverWait(self.driver, 20).until(
                                                    EC.staleness_of(splash_screen)
                                                )
                                                print(display_rtl("מסך הטעינה נעלם"))
                                            except:
                                                print(display_rtl("לא נמצא מסך טעינה"))
                                            
                                            # מחכה שיופיע התוכן האמיתי
                                            print(display_rtl("ממתין לטעינת התוכן..."))
                                            time.sleep(3)
                                    
                                        def wait_for_page_load(self):
                                            WebDriverWait(self.driver, 30).until(
                                                lambda driver: driver.execute_script("return document.readyState") == "complete"
                                            )
                                    
                                        def close(self):
                                            try:
                                                self.driver.quit()
                                            except:
                                                pass
                                    
                                    def main():
                                        updater = None
                                        try:
                                            while True:  # לולאה אינסופית
                                                print("\nמתחיל הרצה חדשה...")
                                                updater = ListingUpdater()
                                                updater.load_cookies()
                                                if updater.check_login_status():
                                                    print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                                                else:
                                                    print(display_rtl("צריך להתחבר שוב..."))
                                                    updater.manual_login()
                                                
                                                print(display_rtl("\nמתחיל את תהליך העדכון..."))
                                                updater.update_listings()
                                                
                                                updater.close()
                                                
                                                # מחכה 4 שעות ודקה
                                                print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                                                time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                                                
                                        except KeyboardInterrupt:
                                            print("\nהתוכנית הופסקה על ידי המשתמש")
                                        finally:
                                            if updater:
                                                updater.close()
                                    
                                    if __name__ == "__main__":
                                        main()
                                    
                                    

                                    A מנותק
                                    A מנותק
                                    aiib
                                    כתב נערך לאחרונה על ידי
                                    #149

                                    @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                    @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                    א"א לתכנת בלי לדעת תכנות.

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

                                    יצא מדהים, הקוד בספויילר.

                                    from selenium import webdriver
                                    from selenium.webdriver.chrome.service import Service
                                    from selenium.webdriver.chrome.options import Options
                                    from selenium.webdriver.common.by import By
                                    from selenium.webdriver.support.ui import WebDriverWait
                                    from selenium.webdriver.support import expected_conditions as EC
                                    import time
                                    import os
                                    import json
                                    from datetime import datetime
                                    from dotenv import load_dotenv
                                    from bidi.algorithm import get_display
                                    
                                    def display_rtl(text):
                                        """מציג טקסט בעברית בכיוון הנכון"""
                                        return get_display(text)
                                    
                                    load_dotenv()
                                    
                                    class ListingUpdater:
                                        def __init__(self):
                                            print(display_rtl("מאתחל את דפדפן Chrome..."))
                                            self.cookies_file = "yad2_cookies.json"
                                            self.setup_driver()
                                            
                                        def setup_driver(self):
                                            chrome_options = Options()
                                            chrome_options.add_argument('--disable-gpu')
                                            chrome_options.add_argument('--no-sandbox')
                                            chrome_options.add_argument('--disable-dev-shm-usage')
                                            chrome_options.add_argument('--start-maximized')
                                            chrome_options.add_experimental_option("detach", True)
                                            
                                            try:
                                                self.driver = webdriver.Chrome(options=chrome_options)
                                                print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                                                raise
                                    
                                        def save_cookies(self):
                                            cookies = self.driver.get_cookies()
                                            with open(self.cookies_file, 'w') as f:
                                                json.dump(cookies, f)
                                            print(display_rtl("נשמרו עוגיות בהצלחה"))
                                    
                                        def load_cookies(self):
                                            try:
                                                with open(self.cookies_file, 'r') as f:
                                                    cookies = json.load(f)
                                                
                                                # Navigate to the domain first
                                                self.driver.get('https://www.yad2.co.il')
                                                time.sleep(2)
                                                
                                                # Add the cookies
                                                for cookie in cookies:
                                                    self.driver.add_cookie(cookie)
                                                
                                                print(display_rtl("עוגיות נטענו בהצלחה"))
                                                return True
                                            except FileNotFoundError:
                                                print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                                                return False
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                                                return False
                                    
                                        def check_login_status(self):
                                            try:
                                                print(display_rtl("בודק סטטוס התחברות..."))
                                                # First go to main page
                                                self.driver.get('https://www.yad2.co.il')
                                                time.sleep(3)
                                                
                                                # Then try to access my-ads
                                                print(display_rtl("מנסה לגשת לאזור האישי..."))
                                                self.driver.get('https://www.yad2.co.il/my-ads')
                                                time.sleep(10)  # תן יותר זמן לטעינה
                                                
                                                # Check if we're actually on the my-ads page
                                                current_url = self.driver.current_url
                                                print(display_rtl(f"כתובת נוכחית: {current_url}"))
                                                
                                                if "my-ads" in current_url:
                                                    print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                                                    return True
                                                else:
                                                    print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                                                    return False
                                                    
                                            except Exception as e:
                                                print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                                                return False
                                    
                                        def manual_login(self):
                                            print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                                            print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                                            print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                                            print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                                            
                                            self.driver.get('https://www.yad2.co.il/auth/login')
                                            
                                            # Wait for successful login
                                            WebDriverWait(self.driver, 300).until(
                                                lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                                            )
                                            
                                            print(display_rtl("התחברת בהצלחה!"))
                                            self.save_cookies()
                                    
                                        def update_listings(self):
                                            try:
                                                print(display_rtl("מנווט לדף המודעות שלי..."))
                                                self.navigate_to_my_ads()
                                                
                                                # מחפש את כפתורי ההקפצה
                                                print(display_rtl("\nמחפש כפתורי הקפצה..."))
                                                bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                
                                                if not bump_buttons:
                                                    print(display_rtl("לא נמצאו כפתורי הקפצה"))
                                                    return False
                                                
                                                print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                                                
                                                # עובר על כל כפתור הקפצה
                                                for i in range(len(bump_buttons)):
                                                    try:
                                                        # מנווט מחדש לדף המודעות בכל פעם
                                                        self.navigate_to_my_ads()
                                                        
                                                        print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                                        
                                                        # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                                        bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                        if i >= len(bump_buttons):
                                                            print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                                            break
                                                            
                                                        button = bump_buttons[i]
                                                        print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                                        
                                                        # בודק אם הכפתור מושבת
                                                        if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                                            print(display_rtl("הכפתור מושבת"))
                                                            continue
                                                        
                                                        # גולל לכפתור
                                                        self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                                        time.sleep(1)
                                                        
                                                        # מנסה ללחוץ באמצעות JavaScript
                                                        print("מנסה ללחוץ על כפתור ההקפצה...")
                                                        self.driver.execute_script("arguments[0].click();", button)
                                                        print("לחיצה על כפתור ההקפצה")
                                                        
                                                        # מחכה קצת ואז מרענן את הדף
                                                        time.sleep(2)
                                                        print("מרענן את הדף...")
                                                        self.driver.refresh()
                                                        
                                                        # מחכה לטעינת הדף
                                                        print("ממתין לטעינת הדף...")
                                                        self.wait_for_page_load()
                                                        print("הדף נטען")
                                                        
                                                        # מחכה קצת זמן אחרי ההקפצה
                                                        time.sleep(3)
                                                        
                                                    except Exception as e:
                                                        print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                                        if hasattr(e, 'msg'):
                                                            print(f"Message: {e.msg}")
                                                
                                                return True
                                                
                                            except Exception as e:
                                                print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                                                if hasattr(e, 'msg'):
                                                    print(f"Message: {e.msg}")
                                                return False
                                                
                                        def navigate_to_my_ads(self):
                                            """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                                            self.driver.get('https://www.yad2.co.il/my-ads')
                                            
                                            # מחכה שהדף יטען
                                            print(display_rtl("ממתין לטעינת הדף..."))
                                            WebDriverWait(self.driver, 30).until(
                                                lambda driver: driver.execute_script("return document.readyState") == "complete"
                                            )
                                            
                                            # מחכה שה-splash screen ייעלם
                                            print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                                            try:
                                                splash_screen = WebDriverWait(self.driver, 10).until(
                                                    EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                                                )
                                                WebDriverWait(self.driver, 20).until(
                                                    EC.staleness_of(splash_screen)
                                                )
                                                print(display_rtl("מסך הטעינה נעלם"))
                                            except:
                                                print(display_rtl("לא נמצא מסך טעינה"))
                                            
                                            # מחכה שיופיע התוכן האמיתי
                                            print(display_rtl("ממתין לטעינת התוכן..."))
                                            time.sleep(3)
                                    
                                        def wait_for_page_load(self):
                                            WebDriverWait(self.driver, 30).until(
                                                lambda driver: driver.execute_script("return document.readyState") == "complete"
                                            )
                                    
                                        def close(self):
                                            try:
                                                self.driver.quit()
                                            except:
                                                pass
                                    
                                    def main():
                                        updater = None
                                        try:
                                            while True:  # לולאה אינסופית
                                                print("\nמתחיל הרצה חדשה...")
                                                updater = ListingUpdater()
                                                updater.load_cookies()
                                                if updater.check_login_status():
                                                    print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                                                else:
                                                    print(display_rtl("צריך להתחבר שוב..."))
                                                    updater.manual_login()
                                                
                                                print(display_rtl("\nמתחיל את תהליך העדכון..."))
                                                updater.update_listings()
                                                
                                                updater.close()
                                                
                                                # מחכה 4 שעות ודקה
                                                print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                                                time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                                                
                                        except KeyboardInterrupt:
                                            print("\nהתוכנית הופסקה על ידי המשתמש")
                                        finally:
                                            if updater:
                                                updater.close()
                                    
                                    if __name__ == "__main__":
                                        main()
                                    
                                    

                                    יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                                    EBAE תגובה 1 תגובה אחרונה
                                    0
                                    • NH.LOCALN NH.LOCAL

                                      @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                      @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

                                      לא סביר, כי המגבלה מאוד גבוהה, זה לא אמור להיגמר כל כך מהר

                                      צ מנותק
                                      צ מנותק
                                      צללית
                                      כתב נערך לאחרונה על ידי
                                      #150

                                      @NH-LOCAL @יעקב-4 עכשיו בדקתי וראיתי שחלק מהמודלים מוגבלים לשתי שאלות בדקה וחלק ל15 שאלות בדקה

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • A aiib

                                        @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                        @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                        א"א לתכנת בלי לדעת תכנות.

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

                                        יצא מדהים, הקוד בספויילר.

                                        from selenium import webdriver
                                        from selenium.webdriver.chrome.service import Service
                                        from selenium.webdriver.chrome.options import Options
                                        from selenium.webdriver.common.by import By
                                        from selenium.webdriver.support.ui import WebDriverWait
                                        from selenium.webdriver.support import expected_conditions as EC
                                        import time
                                        import os
                                        import json
                                        from datetime import datetime
                                        from dotenv import load_dotenv
                                        from bidi.algorithm import get_display
                                        
                                        def display_rtl(text):
                                            """מציג טקסט בעברית בכיוון הנכון"""
                                            return get_display(text)
                                        
                                        load_dotenv()
                                        
                                        class ListingUpdater:
                                            def __init__(self):
                                                print(display_rtl("מאתחל את דפדפן Chrome..."))
                                                self.cookies_file = "yad2_cookies.json"
                                                self.setup_driver()
                                                
                                            def setup_driver(self):
                                                chrome_options = Options()
                                                chrome_options.add_argument('--disable-gpu')
                                                chrome_options.add_argument('--no-sandbox')
                                                chrome_options.add_argument('--disable-dev-shm-usage')
                                                chrome_options.add_argument('--start-maximized')
                                                chrome_options.add_experimental_option("detach", True)
                                                
                                                try:
                                                    self.driver = webdriver.Chrome(options=chrome_options)
                                                    print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                                                except Exception as e:
                                                    print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                                                    raise
                                        
                                            def save_cookies(self):
                                                cookies = self.driver.get_cookies()
                                                with open(self.cookies_file, 'w') as f:
                                                    json.dump(cookies, f)
                                                print(display_rtl("נשמרו עוגיות בהצלחה"))
                                        
                                            def load_cookies(self):
                                                try:
                                                    with open(self.cookies_file, 'r') as f:
                                                        cookies = json.load(f)
                                                    
                                                    # Navigate to the domain first
                                                    self.driver.get('https://www.yad2.co.il')
                                                    time.sleep(2)
                                                    
                                                    # Add the cookies
                                                    for cookie in cookies:
                                                        self.driver.add_cookie(cookie)
                                                    
                                                    print(display_rtl("עוגיות נטענו בהצלחה"))
                                                    return True
                                                except FileNotFoundError:
                                                    print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                                                    return False
                                                except Exception as e:
                                                    print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                                                    return False
                                        
                                            def check_login_status(self):
                                                try:
                                                    print(display_rtl("בודק סטטוס התחברות..."))
                                                    # First go to main page
                                                    self.driver.get('https://www.yad2.co.il')
                                                    time.sleep(3)
                                                    
                                                    # Then try to access my-ads
                                                    print(display_rtl("מנסה לגשת לאזור האישי..."))
                                                    self.driver.get('https://www.yad2.co.il/my-ads')
                                                    time.sleep(10)  # תן יותר זמן לטעינה
                                                    
                                                    # Check if we're actually on the my-ads page
                                                    current_url = self.driver.current_url
                                                    print(display_rtl(f"כתובת נוכחית: {current_url}"))
                                                    
                                                    if "my-ads" in current_url:
                                                        print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                                                        return True
                                                    else:
                                                        print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                                                        return False
                                                        
                                                except Exception as e:
                                                    print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                                                    return False
                                        
                                            def manual_login(self):
                                                print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                                                print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                                                print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                                                print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                                                
                                                self.driver.get('https://www.yad2.co.il/auth/login')
                                                
                                                # Wait for successful login
                                                WebDriverWait(self.driver, 300).until(
                                                    lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                                                )
                                                
                                                print(display_rtl("התחברת בהצלחה!"))
                                                self.save_cookies()
                                        
                                            def update_listings(self):
                                                try:
                                                    print(display_rtl("מנווט לדף המודעות שלי..."))
                                                    self.navigate_to_my_ads()
                                                    
                                                    # מחפש את כפתורי ההקפצה
                                                    print(display_rtl("\nמחפש כפתורי הקפצה..."))
                                                    bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                    
                                                    if not bump_buttons:
                                                        print(display_rtl("לא נמצאו כפתורי הקפצה"))
                                                        return False
                                                    
                                                    print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                                                    
                                                    # עובר על כל כפתור הקפצה
                                                    for i in range(len(bump_buttons)):
                                                        try:
                                                            # מנווט מחדש לדף המודעות בכל פעם
                                                            self.navigate_to_my_ads()
                                                            
                                                            print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                                            
                                                            # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                                            bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                                            if i >= len(bump_buttons):
                                                                print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                                                break
                                                                
                                                            button = bump_buttons[i]
                                                            print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                                            
                                                            # בודק אם הכפתור מושבת
                                                            if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                                                print(display_rtl("הכפתור מושבת"))
                                                                continue
                                                            
                                                            # גולל לכפתור
                                                            self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                                            time.sleep(1)
                                                            
                                                            # מנסה ללחוץ באמצעות JavaScript
                                                            print("מנסה ללחוץ על כפתור ההקפצה...")
                                                            self.driver.execute_script("arguments[0].click();", button)
                                                            print("לחיצה על כפתור ההקפצה")
                                                            
                                                            # מחכה קצת ואז מרענן את הדף
                                                            time.sleep(2)
                                                            print("מרענן את הדף...")
                                                            self.driver.refresh()
                                                            
                                                            # מחכה לטעינת הדף
                                                            print("ממתין לטעינת הדף...")
                                                            self.wait_for_page_load()
                                                            print("הדף נטען")
                                                            
                                                            # מחכה קצת זמן אחרי ההקפצה
                                                            time.sleep(3)
                                                            
                                                        except Exception as e:
                                                            print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                                            if hasattr(e, 'msg'):
                                                                print(f"Message: {e.msg}")
                                                    
                                                    return True
                                                    
                                                except Exception as e:
                                                    print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                                                    if hasattr(e, 'msg'):
                                                        print(f"Message: {e.msg}")
                                                    return False
                                                    
                                            def navigate_to_my_ads(self):
                                                """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                                                self.driver.get('https://www.yad2.co.il/my-ads')
                                                
                                                # מחכה שהדף יטען
                                                print(display_rtl("ממתין לטעינת הדף..."))
                                                WebDriverWait(self.driver, 30).until(
                                                    lambda driver: driver.execute_script("return document.readyState") == "complete"
                                                )
                                                
                                                # מחכה שה-splash screen ייעלם
                                                print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                                                try:
                                                    splash_screen = WebDriverWait(self.driver, 10).until(
                                                        EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                                                    )
                                                    WebDriverWait(self.driver, 20).until(
                                                        EC.staleness_of(splash_screen)
                                                    )
                                                    print(display_rtl("מסך הטעינה נעלם"))
                                                except:
                                                    print(display_rtl("לא נמצא מסך טעינה"))
                                                
                                                # מחכה שיופיע התוכן האמיתי
                                                print(display_rtl("ממתין לטעינת התוכן..."))
                                                time.sleep(3)
                                        
                                            def wait_for_page_load(self):
                                                WebDriverWait(self.driver, 30).until(
                                                    lambda driver: driver.execute_script("return document.readyState") == "complete"
                                                )
                                        
                                            def close(self):
                                                try:
                                                    self.driver.quit()
                                                except:
                                                    pass
                                        
                                        def main():
                                            updater = None
                                            try:
                                                while True:  # לולאה אינסופית
                                                    print("\nמתחיל הרצה חדשה...")
                                                    updater = ListingUpdater()
                                                    updater.load_cookies()
                                                    if updater.check_login_status():
                                                        print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                                                    else:
                                                        print(display_rtl("צריך להתחבר שוב..."))
                                                        updater.manual_login()
                                                    
                                                    print(display_rtl("\nמתחיל את תהליך העדכון..."))
                                                    updater.update_listings()
                                                    
                                                    updater.close()
                                                    
                                                    # מחכה 4 שעות ודקה
                                                    print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                                                    time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                                                    
                                            except KeyboardInterrupt:
                                                print("\nהתוכנית הופסקה על ידי המשתמש")
                                            finally:
                                                if updater:
                                                    updater.close()
                                        
                                        if __name__ == "__main__":
                                            main()
                                        
                                        

                                        יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                                        EBAE מנותק
                                        EBAE מנותק
                                        EBA
                                        מדריכים
                                        כתב נערך לאחרונה על ידי
                                        #151

                                        @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                        יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                                        0

                                        לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                                        sivan22S תגובה 1 תגובה אחרונה
                                        1
                                        • EBAE EBA

                                          @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                          יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                                          0

                                          לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                                          sivan22S מנותק
                                          sivan22S מנותק
                                          sivan22
                                          כתב נערך לאחרונה על ידי
                                          #152

                                          @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                          @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                          יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                                          0

                                          לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                                          נסה את https://anti-captcha.com/ או שירות מקביל

                                          EBAE תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

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