דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • NH.LOCALN NH.LOCAL

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

    כל הפרטים כאן: https://github.com/features/copilot

    M מנותק
    M מנותק
    MAKRO
    כתב נערך לאחרונה על ידי
    #130

    @NH-LOCAL @sivan22 @ @צדיק-תמים ושאר הכותבים המבינים
    אשמח לשמוע מהו המודל החינמי המומלץ לכתיבת קוד
    אבל לא שמתפקד כתוסף ל VS אלא בלי שום תוכנה שמותקנת על המחשב
    (הכתיבה וההרצה תהיה במחשב אחר)
    תודה!

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

      @NH-LOCAL @sivan22 @ @צדיק-תמים ושאר הכותבים המבינים
      אשמח לשמוע מהו המודל החינמי המומלץ לכתיבת קוד
      אבל לא שמתפקד כתוסף ל VS אלא בלי שום תוכנה שמותקנת על המחשב
      (הכתיבה וההרצה תהיה במחשב אחר)
      תודה!

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

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

      M NH.LOCALN 2 תגובות תגובה אחרונה
      1
      • צ צללית

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

        M מנותק
        M מנותק
        MAKRO
        כתב נערך לאחרונה על ידי
        #132

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

        קלוד לא בדקתי

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

        נ NH.LOCALN 2 תגובות תגובה אחרונה
        0
        • 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

                                          • התחברות

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

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