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

    @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 מנותק
    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
    • sivan22S sivan22

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

      ראשית יש להתקין פייתון כמובן. כדאי להקפיד לסמן בוי את האפשרות להגדיר 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

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

      ה מנותק
      ה מנותק
      הייתי שמח להבין
      כתב ב נערך לאחרונה על ידי
      #49

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

      sivan22S תגובה 1 תגובה אחרונה
      0
      • ה הייתי שמח להבין

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

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

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

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

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

          ה מנותק
          ה מנותק
          הייתי שמח להבין
          כתב ב נערך לאחרונה על ידי
          #51

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

          sivan22S תגובה 1 תגובה אחרונה
          0
          • ה הייתי שמח להבין

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

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

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

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

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

              ה מנותק
              ה מנותק
              הייתי שמח להבין
              כתב ב נערך לאחרונה על ידי הייתי שמח להבין
              #53

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

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

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

                נ מנותק
                נ מנותק
                נחמן פלח
                כתב ב נערך לאחרונה על ידי נחמן פלח
                #54

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

                היי

                תגובה 1 תגובה אחרונה
                1
                • ה הייתי שמח להבין

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

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

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

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

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

                    ה מנותק
                    ה מנותק
                    הייתי שמח להבין
                    כתב ב נערך לאחרונה על ידי הייתי שמח להבין
                    #56

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

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

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

                      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 2
                      כתב ב נערך לאחרונה על ידי ישראל 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
                      • sivan22S sivan22

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

                        ה מנותק
                        ה מנותק
                        הייתי שמח להבין
                        כתב ב נערך לאחרונה על ידי הייתי שמח להבין
                        #58

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

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

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

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

                        • התחברות

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

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