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

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

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

עזרה בקוד פייתון

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

    אני כותב סקריפט שמוריד פודקאסטים מפיד RSS
    הוספתי בסקריפט דילוג על פרקים שכבר הורדו בעבר - כל קישור לפרק נכתב לקובץ לוג ואז לפני כל הורדה של פרק יש בדיקה אם הקישור אליו מופיע בלוג
    משום מה החלק הזה לא עובד לי והסקריפט מוריד בכל אופן (הוא אפילו לא נכנס ל if)
    הקטע הלא תקין הוא בשורות 36 - 41

    #imports required libraries
    import feedparser
    import requests
    import os
    
    #get user inputs
    pod_link = input("rss feed link : ")
    max_loop = input("The maximum number of podcasts to download : ")
    
    #parsing the rss file
    print("parsing the rss file...")
    feed = feedparser.parse(pod_link)
    
    #validating the feed
    if feed['feed'] == {}:
        raise RuntimeError("Something bad happened")
    
    #initialize the counter
    loop = 0
    
    #preparing the log file
    pod_list = open("pod_list.lst", 'w')
    pod_list.write("list of all podcasts links" + '\n')
    
    #starts working
    for entry in feed.entries:
        if loop == int(max_loop):
            break
        else:
            print("downloading podcast number " + str(loop+1))
            link = entry.links[0]
            pod_title = entry.title
            link1 = link["href"]
    
            #check the log for existing podcasts
            with open("pod_list.lst", 'r') as f:
                content = f.read()
                if link1 in content:
                    print("skipping podcast number " + str(loop+1))
                    continue
                else:
                    pod_list = open("pod_list.lst", 'a')
                    pod_list.write(link1 + '\n')
                    podcast = requests.get(link1)
                    open(pod_title + ".mp3", 'wb').write(podcast.content)
                    loop += 1
    
    #closing the log file
    pod_list.close()
    
    
    A תגובה 1 תגובה אחרונה
    0
    • A מנותק
      A מנותק
      aaron
      השיב לאף אחד 3 ב נערך לאחרונה על ידי
      #2

      @אף-אחד-3 כתב בעזרה בקוד פייתון:

      pod_list = open("pod_list.lst", 'w')

      אתה פותח את הקובץ כל ריצה במצב כתיבה וכותב לתוכו, זה אומר שהוא נדרס בכל ריצה מחדש.

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

      aaron.tchumim@gmail.com
      Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

      ווצאפ API - תיעוד שירות API לא רשמי.

      אף אחד 3א תגובה 1 תגובה אחרונה
      5
      • אף אחד 3א מנותק
        אף אחד 3א מנותק
        אף אחד 3
        השיב לaaron ב נערך לאחרונה על ידי
        #3

        @aaron היו בקוד הזה כמה וכמה בעיות, זה הקוד הסופי

        #imports required libraries
        import feedparser
        import requests
        import os
         
        #get user inputs
        pod_link = input("rss feed link : ")
        max_loop = input("The maximum number of podcasts to download : ")
         
        #parsing the rss file
        print("parsing the rss file...")
        feed = feedparser.parse(pod_link)
         
        #validating the feed
        if feed['feed'] == {}:
            raise RuntimeError("Something bad happened")
         
        #initialize the counter
        loop = 0
         
        #preparing the log file
        if not os.path.exists("pod_list.lst"):
            f = open("pod_list.lst", 'w')
            f.close()
        pod_list = open("pod_list.lst", 'r+')
        pod_list.write("new session" + '\n')
        content = pod_list.read()
        current_pods = []
         
        #starts working
        for entry in feed.entries:
            link = entry.links[0]
            link1 = link["href"]
            pod_title = entry.title
            if not loop == int(max_loop):
                if link1 in content:
                    print("skipping podcast number" + str(loop+1))
                    loop += 1
                    continue
                else:
                    print("downloading podcast number " + str(loop+1))
                    podcast = requests.get(link1)
                    open(pod_title + ".mp3", 'wb').write(podcast.content)
                    current_pods += link1+'\n'
            else:
                break
        
            loop += 1
        
        with open("pod_list.lst", 'a') as f:
            for line in current_pods:
                f.write(f"{line}")
        
        תגובה 1 תגובה אחרונה
        2

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

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

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