Fixat så bilderna landar i hämtade filer. Tar bort skalningsinformation m.m. efter filnamnet så att suffix blir korrekt.

This commit is contained in:
Joakim Persson
2024-08-13 15:13:59 +02:00
parent 8288450662
commit 6dab09c861
+15 -7
View File
@@ -3,6 +3,7 @@ import re
from bs4 import BeautifulSoup
import requests
from urllib.parse import urljoin
import base64
def ladda_ner_bilder(url):
# Hämta HTML-sidan
@@ -25,7 +26,7 @@ def ladda_ner_bilder(url):
bilder.append(f"data:{bild_typ};base64,{bild_data}")
# Ladda ner bilderna
bild_katalog = "bilder"
bild_katalog = os.path.expanduser("~/Downloads/bilder")
if not os.path.exists(bild_katalog):
os.makedirs(bild_katalog)
@@ -33,12 +34,19 @@ def ladda_ner_bilder(url):
if not bild_url.startswith('http'):
bild_url = urljoin(url, bild_url)
svar = requests.get(bild_url)
if svar.status_code == 200:
filnamn = os.path.basename(bild_url)
fil_sökväg = os.path.join(bild_katalog, filnamn)
with open(fil_sökväg, 'wb') as f:
f.write(svar.content)
if bild_url.startswith('data:'):
# Dekodera base64-strängen och spara den som en bild
format, data = bild_url.split(';base64,')
data = base64.b64decode(data)
filnamn = 'inline_' + str(len(bilder)) + '.gif'
with open(os.path.join(bild_katalog, filnamn), 'wb') as f:
f.write(data)
else:
svar = requests.get(bild_url)
if svar.status_code == 200:
filnamn = os.path.basename(bild_url).split('?')[0]
with open(os.path.join(bild_katalog, filnamn), 'wb') as f:
f.write(svar.content)
print(f"Bilden {filnamn} har laddats ner till {bild_katalog}.")
def main():