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:
+12
-4
@@ -3,6 +3,7 @@ import re
|
|||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import requests
|
import requests
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
|
import base64
|
||||||
|
|
||||||
def ladda_ner_bilder(url):
|
def ladda_ner_bilder(url):
|
||||||
# Hämta HTML-sidan
|
# Hämta HTML-sidan
|
||||||
@@ -25,7 +26,7 @@ def ladda_ner_bilder(url):
|
|||||||
bilder.append(f"data:{bild_typ};base64,{bild_data}")
|
bilder.append(f"data:{bild_typ};base64,{bild_data}")
|
||||||
|
|
||||||
# Ladda ner bilderna
|
# Ladda ner bilderna
|
||||||
bild_katalog = "bilder"
|
bild_katalog = os.path.expanduser("~/Downloads/bilder")
|
||||||
if not os.path.exists(bild_katalog):
|
if not os.path.exists(bild_katalog):
|
||||||
os.makedirs(bild_katalog)
|
os.makedirs(bild_katalog)
|
||||||
|
|
||||||
@@ -33,11 +34,18 @@ def ladda_ner_bilder(url):
|
|||||||
if not bild_url.startswith('http'):
|
if not bild_url.startswith('http'):
|
||||||
bild_url = urljoin(url, bild_url)
|
bild_url = urljoin(url, bild_url)
|
||||||
|
|
||||||
|
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)
|
svar = requests.get(bild_url)
|
||||||
if svar.status_code == 200:
|
if svar.status_code == 200:
|
||||||
filnamn = os.path.basename(bild_url)
|
filnamn = os.path.basename(bild_url).split('?')[0]
|
||||||
fil_sökväg = os.path.join(bild_katalog, filnamn)
|
with open(os.path.join(bild_katalog, filnamn), 'wb') as f:
|
||||||
with open(fil_sökväg, 'wb') as f:
|
|
||||||
f.write(svar.content)
|
f.write(svar.content)
|
||||||
print(f"Bilden {filnamn} har laddats ner till {bild_katalog}.")
|
print(f"Bilden {filnamn} har laddats ner till {bild_katalog}.")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user