בירור | שמירת סיפור מהאינטרנט לקובץ pdf
-
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.@נחמן-פלח כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@משה-שמחה באמצעות וופס אופיס פרימיום תעשה צור pdf חדש תבחר קישור אינטרנט לpdf תכתוב את הלינק של הקובץ סיום וזהו כבר העלתי פה wps office premium באפליקציות להורדה הנה קישור
סתכל שם) כמובן פרוץ בלי לשלם שקל)יש את זה גם לווינדוס?
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
זה קישור לקובץ PDF של 20 העמודים הראשונים בדרייב, ניתן להורדה, להסיר כוכביות מהקישור, אם עדיין יש צורך לערוך עוד תכתוב לי. -
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
זה קישור לקובץ PDF של 20 העמודים הראשונים בדרייב, ניתן להורדה, להסיר כוכביות מהקישור, אם עדיין יש צורך לערוך עוד תכתוב לי.@הייתי-שמח-להבין איך עשית?
-
@הייתי-שמח-להבין איך עשית?
@נחמן-פלח הדפסתי ל-PDF עמוד עמוד, ומיזגתי את הכל לקובץ אחד.
-
@נחמן-פלח הדפסתי ל-PDF עמוד עמוד, ומיזגתי את הכל לקובץ אחד.
@הייתי-שמח-להבין אתה צריך לשמוח.
למה?! כי השם משתמש זה הייתי שמח להבין והבנת!! ואם הבנת גם את זה אז תשמח עוד יותר -
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
זה קישור לקובץ PDF של 20 העמודים הראשונים בדרייב, ניתן להורדה, להסיר כוכביות מהקישור, אם עדיין יש צורך לערוך עוד תכתוב לי.@הייתי-שמח-להבין כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.ערכתי בינתיים 2 קבצי PDF המכילים כל אחד 20 עמודים, העליתי אותם לדרייב, והם ניתנים להורדה.
קובץ 1- https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
קובץ 2- https://drive.google.com/file/d/******1sXbURp416YW62Bc_3XEmMbw-7feSRh6m/view?usp=sharing
להסיר כוכביות מהקישורים, אם עדיין יש צורך לערוך עוד תכתוב לי. -
@הייתי-שמח-להבין כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.ערכתי בינתיים 2 קבצי PDF המכילים כל אחד 20 עמודים, העליתי אותם לדרייב, והם ניתנים להורדה.
קובץ 1- https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
קובץ 2- https://drive.google.com/file/d/******1sXbURp416YW62Bc_3XEmMbw-7feSRh6m/view?usp=sharing
להסיר כוכביות מהקישורים, אם עדיין יש צורך לערוך עוד תכתוב לי.@הייתי-שמח-להבין הנה קוד שיעשה במקומך את כל העבודה:
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
שים לב, @משה-שמחה
אז נעים להכיר את סלניום, מלך הבוטים... -
@הייתי-שמח-להבין כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@משה-שמחה כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
@הייתי-שמח-להבין
תודה רבה על הטרחה והמאמץ אם תוכל לערוך את הכל לקובץ pdf ולהעלות בצורה שלא יחסם בנטפרי זה מאוד יעזור.ערכתי בינתיים 2 קבצי PDF המכילים כל אחד 20 עמודים, העליתי אותם לדרייב, והם ניתנים להורדה.
קובץ 1- https://drive.google.com/******file/d/1Feg5cgVR-NISKegPONmc7LU1H1icWSBQ/view?usp=sharing
קובץ 2- https://drive.google.com/file/d/******1sXbURp416YW62Bc_3XEmMbw-7feSRh6m/view?usp=sharing
להסיר כוכביות מהקישורים, אם עדיין יש צורך לערוך עוד תכתוב לי.@הייתי-שמח-להבין כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
ערכתי בינתיים 2 קבצי PDF המכילים כל אחד 20 עמודים, העליתי אותם לדרייב, והם ניתנים להורדה.
תודה רבה, עכשיו אני יהיה באמצע המתח.
@sivan22 כתב בבירור | שמירת סיפור מהאינטרנט לקובץ pdf:
והוא אכן עשה את העבודה, הנה התוצאה:
result.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
שים לב, @משה-שמחה
אז נעים להכיר את סלניום, מלך הבוטים... -
@נחמן-פלח זה משתמש בכרום שלך, כדי לגלוש באינטרנט ולעשות כל דבר שיעלה בדעתך באמצעות קוד בפייתון (או בשפות אחרות).
תיעוד https://www.selenium.dev/documentation/webdriver/ -
@הייתי-שמח-להבין הנה קוד שיעשה במקומך את כל העבודה:
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
שים לב, @משה-שמחה
אז נעים להכיר את סלניום, מלך הבוטים...@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
שים לב, @משה-שמחה
אז נעים להכיר את סלניום, מלך הבוטים...אתה פשוט גאון, חבל שבאת רק עכשיו.
צריך בשביל להריץ את זה ספריית פייתון או משהו אחר? -
@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
שים לב, @משה-שמחה
אז נעים להכיר את סלניום, מלך הבוטים...אתה פשוט גאון, חבל שבאת רק עכשיו.
צריך בשביל להריץ את זה ספריית פייתון או משהו אחר?@הייתי-שמח-להבין @נחמן-פלח אני רואה שהתלהבתם, אז הנה דוגמה קטנה איך להשתמש בסלניום כדי לגלוש באתר מתמחים טופ.
ראשית יש להתקין פייתון כמובן. כדאי להקפיד לסמן בוי את האפשרות להגדיר 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/")
כך נראה הדפדפן כרגע:
עכשיו דבר חשוב מאד: לפני שנלחץ על עוד אובייקט צריך לחכות לו ולא ללחוץ עליו לפני שהוא נטען. אז השורה הבאה נדרשת:
driver.implicitly_wait(2)
אנחנו רוצים להיכנס לקטגוריה "כללי עזרה הדדית", אז אנחנו צריכים למצוא את הכתובת שלו במקור הדף בhtml.
אז כמובן לוחצים f12. לחיצה ימנית -> בדיקה ->לחיצה ימנית על הhtml -> העתק -> העתק נתיב xpath
צילום מסך:
יופי, עכשיו נמצא את האובייקט הדרוש לפי הכתובת שלו:
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()
עכשיו נחפש אלמנט בדרך אחרת, לא לפי כתובת אלא לפי חלק מהמחרוזת המופיעה בלינק. ונלחץ עליו:
element = driver.find_element(By.PARTIAL_LINK_TEXT,"pdf") element.click()
זהו לבינתיים, בהצלחה ענקית.
-
@הייתי-שמח-להבין @נחמן-פלח אני רואה שהתלהבתם, אז הנה דוגמה קטנה איך להשתמש בסלניום כדי לגלוש באתר מתמחים טופ.
ראשית יש להתקין פייתון כמובן. כדאי להקפיד לסמן בוי את האפשרות להגדיר 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/")
כך נראה הדפדפן כרגע:
עכשיו דבר חשוב מאד: לפני שנלחץ על עוד אובייקט צריך לחכות לו ולא ללחוץ עליו לפני שהוא נטען. אז השורה הבאה נדרשת:
driver.implicitly_wait(2)
אנחנו רוצים להיכנס לקטגוריה "כללי עזרה הדדית", אז אנחנו צריכים למצוא את הכתובת שלו במקור הדף בhtml.
אז כמובן לוחצים f12. לחיצה ימנית -> בדיקה ->לחיצה ימנית על הhtml -> העתק -> העתק נתיב xpath
צילום מסך:
יופי, עכשיו נמצא את האובייקט הדרוש לפי הכתובת שלו:
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()
עכשיו נחפש אלמנט בדרך אחרת, לא לפי כתובת אלא לפי חלק מהמחרוזת המופיעה בלינק. ונלחץ עליו:
element = driver.find_element(By.PARTIAL_LINK_TEXT,"pdf") element.click()
זהו לבינתיים, בהצלחה ענקית.
@sivan22 לא זכיתי להבין למה ההדגמה הנ"ל משמשת, מה המטרה? להגיע למתמחים טופ אפשר ישירות עם הדפדפן.
-
@sivan22 לא זכיתי להבין למה ההדגמה הנ"ל משמשת, מה המטרה? להגיע למתמחים טופ אפשר ישירות עם הדפדפן.
@הייתי-שמח-להבין לא הבנתי את השאלה, ברור שזו רק הדגמה וקח את זה מכאן לאיפה שתרצה.
-
@הייתי-שמח-להבין לא הבנתי את השאלה, ברור שזו רק הדגמה וקח את זה מכאן לאיפה שתרצה.
@sivan22 למה ההדגמה, ל-איך אפשר לשלוף מידע מאפוא? סליחה על הבורות.