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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. איך בונים בוט מושלם?

איך בונים בוט מושלם?

מתוזמן נעוץ נעול הועבר תכנות
44 פוסטים 7 כותבים 1.0k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    השיב לdovid ב נערך לאחרונה על ידי nigun
    #21

    @dovid
    קודם כל אני צריך ללמוד איך בונים בוט בלי קאפצ'ה
    איך בוחרים את האלמנטים מתוך הHTML וJS
    ואחר כך נראה איך עוקפים את הקאפצ'ה

    מייל: nigun@duck.com

    dovidD תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לnigun ב נערך לאחרונה על ידי
      #22

      @nigun לא יכולתי לנסח את זה טוב יותר...

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      nigunN תגובה 1 תגובה אחרונה
      0
      • nigunN מנותק
        nigunN מנותק
        nigun
        השיב לdovid ב נערך לאחרונה על ידי nigun
        #23

        אם זה מעניין מישהו
        זה קוד שכתבתי עם chromedp (שזה כדומה לSelenium אבל בGO)
        בשביל לבנות את הבסיס להגדרת פרופיל זמני דרך הטלפון

        
        package main
        
        import (
        	"context"
        	"log"
        	"time"
        	"github.com/chromedp/chromedp"
        )
        
        func main() {
        	
        	opts := append(chromedp.DefaultExecAllocatorOptions[:],
        		//הפעלת כרום במצב GPU
                        chromedp.Flag("headless", false),
        		chromedp.Flag("disable-gpu", false),
        			)
        	allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
        	defer cancel()
        
        	ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))
        	defer cancel()
        
        	err := chromedp.Run(ctx, sendkeys())
        	if err != nil {
        		log.Fatal(err)
        	}
        	// sendkeys sends
        func sendkeys() chromedp.Tasks {
        	return chromedp.Tasks{
                        //ניווט לעמוד של הגדרות סינון
        		chromedp.Navigate("https://netfree.link/user#/user/filter-settings"),
        		//המתנה לשדה של שם משתמש וסיסמה להטען
                        chromedp.WaitVisible(`//*[@name="phoneNumber"]`, chromedp.BySearch),
        		chromedp.WaitVisible(`//*[@name="password"]`, chromedp.BySearch),
        		//שליחת העריכם של שם משתמש וסיסמה
                        chromedp.SendKeys(`input[name="phoneNumber"]`, "05212345", chromedp.NodeVisible),
        		chromedp.SendKeys(`input[name="password"]`, "pass", chromedp.NodeVisible),
        //כניסה
        		chromedp.Click(`//*[@type="submit"]`, chromedp.BySearch),
        				//המתנה 3 שניות
                        chromedp.Sleep(3 * time.Second),
        		//לחיצה על הפתור של הפעלת פרופיל זמני
        		chromedp.Click(`button.btn.btn-default.btn-xs`, chromedp.ByQuery),
        		//בחירת הפרופיל(חסום)
        		chromedp.SendKeys(`//select[@ng-model="editTmp.profile"]`, "חסום", chromedp.BySearch),
        		//הגרת הזמן
                        chromedp.SendKeys(`//input[@ng-model="editTmp.time"]`, "1", chromedp.BySearch),
        		//שמירה
                        chromedp.Click(`.fa.fa-check`, chromedp.ByQuery),
        		chromedp.Click(`.btn.btn-primary.pull-end`, chromedp.ByQuery),
        		//סיסמת הגדרות פרופיל
                        chromedp.SendKeys(`input.form-control`, "aaa1234", chromedp.ByQuery),
        		
        		chromedp.Sleep(3 * time.Second),
        		}
        }
        
        

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

        מייל: nigun@duck.com

        dovidD תגובה 1 תגובה אחרונה
        1
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לnigun ב נערך לאחרונה על ידי
          #24

          @nigun אמר באיך בונים בוט מושלם?:

          האם יש דרך יותר חכמה לישם את זה?

          @dovid אמר באיך בונים בוט מושלם?:

          הפשוטה ביותר (מהפן התכנותי/טכני של הפעולה עצמה) זה לעשות מיני "הנדסה לאחור" לאתר,
          ופשוט לעשות אותו דבר. בלי עכבר ובלי בוט. למשל בלוגין לאתר זה לאחזר את AntiForgeryToken ואח"כ לשלוח פוסט איתו ועם שם המשתמש וסיסמה. ב99% מהאתרים והפעולות זה עובד יופי.

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

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          nigunN 2 תגובות תגובה אחרונה
          0
          • nigunN מנותק
            nigunN מנותק
            nigun
            השיב לdovid ב נערך לאחרונה על ידי
            #25

            @dovid
            זה טוב ללוגאין
            אבל לשאר ההגדרות לא הבנתי איך אני יכול לשלוח את הערכים בלי בוט

            מייל: nigun@duck.com

            dovidD 2 תגובות תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לnigun ב נערך לאחרונה על ידי dovid
              #26

              @nigun מעניין אותי מה אתה חושב, שהדפדפן יש לו יכולות מיוחדות לתקשורת עם השרת?
              למה דפדפן יודע לשלוח ערכים והתוכנה שלך לא יכולה? איך השרת יודע אם הוא מדבר עם דפדפן או עם תוכנה שלך?

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              nigunN תגובה 1 תגובה אחרונה
              2
              • nigunN מנותק
                nigunN מנותק
                nigun
                השיב לdovid ב נערך לאחרונה על ידי
                #27

                @dovid
                לא הבנתי , איפה כתבתי שהתוכנה לא יכולה לשלוח ערכים שהדפדפן יכול לשלוח?

                מייל: nigun@duck.com

                תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב לnigun ב נערך לאחרונה על ידי
                  #28

                  @nigun אמר באיך בונים בוט מושלם?:

                  זה טוב ללוגאין
                  אבל לשאר ההגדרות לא הבנתי איך אני יכול לשלוח את הערכים בלי בוט

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  0
                  • nigunN מנותק
                    nigunN מנותק
                    nigun
                    השיב לdovid ב נערך לאחרונה על ידי nigun
                    #29

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

                    מייל: nigun@duck.com

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      השיב לnigun ב נערך לאחרונה על ידי dovid
                      #30

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

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      nigunN תגובה 1 תגובה אחרונה
                      0
                      • nigunN מנותק
                        nigunN מנותק
                        nigun
                        השיב לdovid ב נערך לאחרונה על ידי nigun
                        #31

                        @dovid

                        1. כל מה שסלניום ודומיו עושים זה שימוש בAPI של כרום
                          שימוש בAPI של כרום לבד יהיה כנראה אפשרי אבל סתם מסובך

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

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

                        מייל: nigun@duck.com

                        dovidD תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          השיב לnigun ב נערך לאחרונה על ידי dovid
                          #32

                          @nigun

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

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

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          nigunN תגובה 1 תגובה אחרונה
                          1
                          • nigunN מנותק
                            nigunN מנותק
                            nigun
                            השיב לdovid ב נערך לאחרונה על ידי
                            #33

                            @dovid

                            1. יכול להיות שיש לי קושי ללמוד מאחרים
                              אבל הסיבה שאני שאני לא שואל איך עושים X זה פשוט כי יש את stackoverflow שלרוב בחיפוש פשוט בגוגל אני מוצא את התשובה ואין סיבה לשאול את זה בפורום הז אא"כ אני לא מוצא את מילות החיפוש הנכונות
                              אבל בנושאים יותר כללים אני מתקשה בהבנת הדברים בפורומים ובפוסטים באנגלית (בעיקר כי אני קורא לאט)
                              אז הפורום הזה זה נראה לי מקום טוב ללמוד על מושגים חדשים וקונספטים מופשטים וכדו'
                              אם אני מפסיד משהו מזה שאני לא שואל שאלות פשוטות? אשמח לשמוע מה בדיוק אני מפסיד.
                            2. במקרה שלנו לא הבנתי איך אני יכול לשלוח את הערכים שבשונה משם מתשתמש וסיסמה הם לא נשלחים בפוסט לHTTP
                              אלא משהו בJS (שאני ממש לא מבין בזה ואני לומד את זה עכשיו בעל כורחי בדרך עקיפה (שכמובן זה לא חכם אבל כמו שכתבתי בעבר קשה לי ללמוד דברים שלא נצרכים לי כרגע))
                              אני חשבתי שכנראה הבקשות נשלחים בוובסוקט או משהו כזה
                              ואין לי מושג איך אפשר לשלוח אותם בלי דפדפן

                            מייל: nigun@duck.com

                            WWWW dovidD 2 תגובות תגובה אחרונה
                            0
                            • WWWW מנותק
                              WWWW מנותק
                              WWW
                              השיב לnigun ב נערך לאחרונה על ידי
                              #34

                              @nigun אמר באיך בונים בוט מושלם?:

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

                              בודקים ב F12 בלשונית Network.
                              הכי פשוט.

                              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                              nigunN תגובה 1 תגובה אחרונה
                              3
                              • nigunN מנותק
                                nigunN מנותק
                                nigun
                                השיב לWWW ב נערך לאחרונה על ידי
                                #35

                                @WWW אמר באיך בונים בוט מושלם?:

                                @nigun אמר באיך בונים בוט מושלם?:

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

                                בודקים ב F12 בלשונית Network.
                                הכי פשוט.

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

                                מייל: nigun@duck.com

                                WWWW תגובה 1 תגובה אחרונה
                                1
                                • WWWW מנותק
                                  WWWW מנותק
                                  WWW
                                  השיב לnigun ב נערך לאחרונה על ידי WWW
                                  #36

                                  @nigun זה הבסיס על ההתחלה.
                                  מעניין שנכנסת כ"כ עמוק לנושא, ולא הגעת לזה.

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

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

                                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                  nigunN תגובה 1 תגובה אחרונה
                                  3
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    השיב לnigun ב נערך לאחרונה על ידי
                                    #37

                                    @nigun אמר באיך בונים בוט מושלם?:

                                    אם אני מפסיד משהו מזה שאני לא שואל שאלות פשוטות? אשמח לשמוע מה בדיוק אני מפסיד.

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

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

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    תגובה 1 תגובה אחרונה
                                    3
                                    • nigunN מנותק
                                      nigunN מנותק
                                      nigun
                                      השיב לWWW ב נערך לאחרונה על ידי nigun
                                      #38

                                      @WWW
                                      את האמת במקרה הזה
                                      חיפשתי פרוייקט שמחייב אותי בשימוש בכלי החדש שמצאתי
                                      ובדיוק ראיתי את הבקשה בפורום של נטפרי
                                      עשיתי בדיקה מהירה האם אפשר לעשות את זה בדרך הרגילה (עם CURL וכדו')
                                      וכשראיתי שבהקלטה אני לא מוצא את הערכים האלו
                                      חשבתי שיש כאן סיבה להשתמש בדפדפן
                                      אבל כנראה זה היה מידי פזיז
                                      אבל לא הפסדתי כי קיבלתי שיעור חינם איך להשתמש בכלים כאלו
                                      וכשלקוח יבקש ממני להתחבר לאתר שבהקלטה אני באמת לא מוצא ערכים שניתנים לחיקוי
                                      אני יוכל לעשות את זה בקלות
                                      ואמנם זה אכן הגיע
                                      בדיוק אחרי שקלטתי את הכיוון איך משתמשים בזה
                                      לקוח ביקש ממני שאני יבנה לו API למערכות של clickcall (קרוייס) כמו של ימות המשיח
                                      בעבר בדקתי את זה ובגלל מבנה האתר לא הצלחתי למצוא
                                      איך לחקות את מה שראיתי בהקלטה
                                      ובעיקר אני לא יודע האם יש לו חסימה מרובוטים
                                      אמנם כנאה שיש דרך גם בלי זה אבל אני לא נכנסתי לזה
                                      כי מצאתי פתרון אחר (קצת יקר במשאבים אבל לא נורא)

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

                                      מייל: nigun@duck.com

                                      dovidD תגובה 1 תגובה אחרונה
                                      1
                                      • dovidD מנותק
                                        dovidD מנותק
                                        dovid ניהול
                                        השיב לnigun ב נערך לאחרונה על ידי dovid
                                        #39

                                        @nigun אמר באיך בונים בוט מושלם?:

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

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

                                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                        nigunN תגובה 1 תגובה אחרונה
                                        0
                                        • dovidD מנותק
                                          dovidD מנותק
                                          dovid ניהול
                                          כתב ב נערך לאחרונה על ידי
                                          #40

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

                                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                                          • 1
                                          • 2
                                          • 3
                                          בא תתחבר לדף היומי!
                                          • התחברות

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

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