RSS-Downloader/index.py

37 lines
1.2 KiB
Python
Raw Normal View History

2025-04-01 19:55:33 +00:00
import feedparser
2025-04-01 20:02:54 +00:00
import os
import requests
2025-04-01 19:55:33 +00:00
2025-04-01 20:02:54 +00:00
def download_attachment(url, filename):
response = requests.get(url)
if response.status_code == 200:
with open(filename, 'wb') as f:
f.write(response.content)
print(f"Downloaded {filename}")
else:
print(f"Failed to download {url}")
2025-04-01 19:55:33 +00:00
2025-04-01 20:02:54 +00:00
def create_downloads_folder():
downloads_folder = "Downloads"
if not os.path.exists(downloads_folder):
os.makedirs(downloads_folder)
print(f"Created folder: {downloads_folder}")
2025-04-01 19:55:33 +00:00
2025-04-01 20:02:54 +00:00
def main():
feed_url = input("Enter the RSS feed URL: ")
num_entries = int(input("Enter the number of entries to process: "))
2025-04-01 19:55:33 +00:00
2025-04-01 20:02:54 +00:00
create_downloads_folder()
2025-04-01 19:55:33 +00:00
2025-04-01 20:02:54 +00:00
feed = feedparser.parse(feed_url)
for i, entry in enumerate(feed.entries[:num_entries]):
if hasattr(entry, 'links'):
for link in entry.links:
if link.type == 'application/pdf' or link.type.endswith('/zip') or link.type.endswith('/rar'):
filename = os.path.basename(link.href)
download_attachment(os.path.join("Downloads", filename), link.href)
if __name__ == "__main__":
main()