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:
+15
-7
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user