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

בירור | שמירת סיפור מהאינטרנט לקובץ pdf

מתוזמן נעוץ נעול הועבר נפתר כללי - עזרה הדדית
58 פוסטים 9 כותבים 1.5k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • sivan22S מנותק
    sivan22S מנותק
    sivan22
    השיב לנחמן פלח ב נערך לאחרונה על ידי
    #45

    @נחמן-פלח זה משתמש בכרום שלך, כדי לגלוש באינטרנט ולעשות כל דבר שיעלה בדעתך באמצעות קוד בפייתון (או בשפות אחרות).
    תיעוד https://www.selenium.dev/documentation/webdriver/

    נ תגובה 1 תגובה אחרונה
    0
    • נ מנותק
      נ מנותק
      נחמן פלח
      השיב לsivan22 ב נערך לאחרונה על ידי
      #46

      @sivan22 סינית בשבילי תכלס אני רוצה להשתמש בזה איך אפשר

      היי

      תגובה 1 תגובה אחרונה
      1
      • ה מנותק
        ה מנותק
        הייתי שמח להבין
        השיב לsivan22 ב נערך לאחרונה על ידי
        #47

        @sivan22 כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:

        @הייתי-שמח-להבין הנה קוד שיעשה במקומך את כל העבודה:

        from base64 import b64decode
        import os
        import time
        from selenium import webdriver
        from selenium.webdriver.chrome.service import Service
        from webdriver_manager.chrome import ChromeDriverManager
        from selenium.webdriver.common.print_page_options import PrintOptions, Orientation
        
        # some tweaks to bypass bot detection
        options = webdriver.ChromeOptions()
        options.add_experimental_option("excludeSwitches", ["enable-automation"])
        options.add_experimental_option('useAutomationExtension', False)
        options.add_argument("--disable-blink-features=AutomationControlled")
        options.page_load_strategy = 'normal'
        options.headless = True
        
        
        
        # initialise webdriver
        driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
        #driver = webdriver.Chr
        
        
        for i in range(1,123):
            driver.get("https://online.fliphtml5.com/nejge/kkyl/#p="+str(i))
            time.sleep(1)
          
        #save the page to disk
            printOptions = PrintOptions()
            printOptions.orientation="landscape"
            open(str(i)+".pdf", "wb").write(b64decode(driver.print_page(printOptions)))
        
        
        # after scraping all pages, merge them with pypdf
        from pypdf import PdfMerger
        
        files = os.listdir()
        pdfs = [s for s in files if '.pdf' in s]
        #sorting the file names by number - not alphabethic
        def forSorting(s)->int:
            s=s.split('.')[0]
            return int(s)
        pdfs.sort(key=forSorting)
        
        merger = PdfMerger()
        
        for pdf in pdfs:
            merger.append(pdf)
        
        merger.write("result.pdf")
        merger.close()
        
        
        
        
        

        והוא אכן עשה את העבודה, הנה התוצאה:
        result.pdf
        שים לב, @משה-שמחה
        אז נעים להכיר את סלניום, מלך הבוטים...

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

        sivan22S תגובה 1 תגובה אחרונה
        2
        • sivan22S מנותק
          sivan22S מנותק
          sivan22
          השיב להייתי שמח להבין ב נערך לאחרונה על ידי
          #48

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

          ראשית יש להתקין פייתון כמובן. כדאי להקפיד לסמן בוי את האפשרות להגדיר PATH.
          שנית יש להתקין את שתי הספריות הבאות:

          pip install selenium webdriver-manager
          

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

          נפתח קובץ פייתון חדש בשם surfMitmachimSelenium.py או כל שם מפוצץ אחר.

          נתחיל בייבוא הספריות:

          from selenium import webdriver
          from selenium.webdriver.chrome.service import Service
          from webdriver_manager.chrome import ChromeDriverManager
          from selenium.webdriver.common.by import By
          

          אחר כך נוריד אוטומטית דרייבר לדפדפן כרום:

          driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
          

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

          driver.get("https://mitmachim.top/")
          

          כך נראה הדפדפן כרגע:
          20457f93-3785-4b4c-bdb4-9e5dc7fd9ccb-image.png

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

          driver.implicitly_wait(2)
          

          אנחנו רוצים להיכנס לקטגוריה "כללי עזרה הדדית", אז אנחנו צריכים למצוא את הכתובת שלו במקור הדף בhtml.
          אז כמובן לוחצים f12. לחיצה ימנית -> בדיקה ->לחיצה ימנית על הhtml -> העתק -> העתק נתיב xpath
          צילום מסך:
          de1b1d7c-ed98-479a-95ab-5a5c380d8183-image.png

          יופי, עכשיו נמצא את האובייקט הדרוש לפי הכתובת שלו:

          element = driver.find_element(By.XPATH,"/html/body/div[1]/main/div[2]/div/div[2]/div[1]/ul/li[9]/div[1]/div[2]/h2/a")
          
          

          נשים לב שהכתובת היא מה שהעתקנו מקודם.
          נלחץ על השורה שמצאנו:

          element.click()
          

          8f719b5b-10c8-4267-bf1e-1009a70775a4-image.png

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

          element = driver.find_element(By.PARTIAL_LINK_TEXT,"pdf")
          element.click()
          

          1d9445ee-4f39-43fb-b8f6-44fd7ab8ae0e-image.png

          זהו לבינתיים, בהצלחה ענקית.

          ה תגובה 1 תגובה אחרונה
          3
          • ה מנותק
            ה מנותק
            הייתי שמח להבין
            השיב לsivan22 ב נערך לאחרונה על ידי
            #49

            @sivan22 לא זכיתי להבין למה ההדגמה הנ"ל משמשת, מה המטרה? להגיע למתמחים טופ אפשר ישירות עם הדפדפן.

            sivan22S תגובה 1 תגובה אחרונה
            0
            • sivan22S מנותק
              sivan22S מנותק
              sivan22
              השיב להייתי שמח להבין ב נערך לאחרונה על ידי
              #50

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

              ה תגובה 1 תגובה אחרונה
              0
              • ה מנותק
                ה מנותק
                הייתי שמח להבין
                השיב לsivan22 ב נערך לאחרונה על ידי
                #51

                @sivan22 למה ההדגמה, ל-איך אפשר לשלוף מידע מאפוא? סליחה על הבורות.

                sivan22S תגובה 1 תגובה אחרונה
                0
                • sivan22S מנותק
                  sivan22S מנותק
                  sivan22
                  השיב להייתי שמח להבין ב נערך לאחרונה על ידי sivan22
                  #52

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

                  ה נ 3 תגובות תגובה אחרונה
                  0
                  • ה מנותק
                    ה מנותק
                    הייתי שמח להבין
                    השיב לsivan22 ב נערך לאחרונה על ידי הייתי שמח להבין
                    #53

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

                    sivan22S תגובה 1 תגובה אחרונה
                    0
                    • נ מנותק
                      נ מנותק
                      נחמן פלח
                      השיב לsivan22 ב נערך לאחרונה על ידי נחמן פלח
                      #54

                      @sivan22 על ראש הגנב בוער הכובע יש מי שקורא את ההודעות חוץ מאיתנו ואם חשובה לך הנוכחות פה אז תערוך את זה

                      היי

                      תגובה 1 תגובה אחרונה
                      1
                      • sivan22S מנותק
                        sivan22S מנותק
                        sivan22
                        השיב להייתי שמח להבין ב נערך לאחרונה על ידי
                        #55

                        @הייתי-שמח-להבין כמובן יש כלים נוספים לכריית נתונים, כמו beutifulsoup ואחרים, אבל זה הכי דומה לבן אדם, ולכן יכול לעשות כמעט כל דבר בלי להחסם.

                        ה תגובה 1 תגובה אחרונה
                        0
                        • ה מנותק
                          ה מנותק
                          הייתי שמח להבין
                          השיב לsivan22 ב נערך לאחרונה על ידי הייתי שמח להבין
                          #56

                          @sivan22 תודה לך על ההסבר, אתה ממריץ אותי להתחיל להשקיע ברצינות יותר בלימודי פייתון.

                          תגובה 1 תגובה אחרונה
                          1
                          • י מנותק
                            י מנותק
                            ישראל 1 2
                            השיב לsivan22 ב נערך לאחרונה על ידי ישראל 1 2
                            #57

                            @sivan22 כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:

                            @הייתי-שמח-להבין הנה קוד שיעשה במקומך את כל העבודה:

                            from base64 import b64decode
                            import os
                            import time
                            from selenium import webdriver
                            from selenium.webdriver.chrome.service import Service
                            from webdriver_manager.chrome import ChromeDriverManager
                            from selenium.webdriver.common.print_page_options import PrintOptions, Orientation
                            
                            # some tweaks to bypass bot detection
                            options = webdriver.ChromeOptions()
                            options.add_experimental_option("excludeSwitches", ["enable-automation"])
                            options.add_experimental_option('useAutomationExtension', False)
                            options.add_argument("--disable-blink-features=AutomationControlled")
                            options.page_load_strategy = 'normal'
                            options.headless = True
                            
                            
                            
                            # initialise webdriver
                            driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
                            #driver = webdriver.Chr
                            
                            
                            for i in range(1,123):
                                driver.get("https://online.fliphtml5.com/nejge/kkyl/#p="+str(i))
                                time.sleep(1)
                              
                            #save the page to disk
                                printOptions = PrintOptions()
                                printOptions.orientation="landscape"
                                open(str(i)+".pdf", "wb").write(b64decode(driver.print_page(printOptions)))
                            
                            
                            # after scraping all pages, merge them with pypdf
                            from pypdf import PdfMerger
                            
                            files = os.listdir()
                            pdfs = [s for s in files if '.pdf' in s]
                            #sorting the file names by number - not alphabethic
                            def forSorting(s)->int:
                                s=s.split('.')[0]
                                return int(s)
                            pdfs.sort(key=forSorting)
                            
                            merger = PdfMerger()
                            
                            for pdf in pdfs:
                                merger.append(pdf)
                            
                            merger.write("result.pdf")
                            merger.close()
                            
                            
                            
                            
                            

                            והוא אכן עשה את העבודה, הנה התוצאה:
                            result.pdf
                            שים לב, @משה-שמחה
                            אז נעים להכיר את סלניום, מלך הבוטים...

                            זה נפתח בנטפרי @משה-שמחה סמן את הנושא כניפתר

                            תגובה 1 תגובה אחרונה
                            1
                            • ה מנותק
                              ה מנותק
                              הייתי שמח להבין
                              השיב לsivan22 ב נערך לאחרונה על ידי הייתי שמח להבין
                              #58

                              @sivan22 כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:

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

                              אולי המנהלים יכולים לחבר לפה איזה ChatGPT, ולבקר את כל תכני הפורום...

                              תגובה 1 תגובה אחרונה
                              0
                              • מ משה שמחה סימן נושא זה כשאלה ב
                              • מ משה שמחה סימן נושא זה כנפתר ב
                              • מ משה שמחה סימן נושא זה כלא נפתר ב
                              • מ משה שמחה סימן נושא זה כנפתר ב
                              • sivan22S sivan22 התייחס לנושא זה ב
                              • ס סקרן להבין התייחס לנושא זה ב
                              • menajemmendelM menajemmendel התייחס לנושא זה ב

                              • התחברות

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

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