Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.python > #141

Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!?

Path csiph.com!3.eu.feeder.erje.net!feeder.erje.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!81.171.118.64.MISMATCH!peer04.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fx24.fr7.POSTED!not-for-mail
Newsgroups pl.comp.lang.python
X-Mozilla-News-Host snews://newshosting.com:563
From Szyk Cech <szykcech@spoko.pl>
Subject Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!?
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Language pl-PL
Content-Transfer-Encoding 8bit
Lines 43
Message-ID <7FnpE.2$wd2.0@fx24.fr7> (permalink)
X-Complaints-To abuse(at)newshosting.com
NNTP-Posting-Date Thu, 04 Apr 2019 13:29:39 UTC
Organization Newshosting.com - Highest quality at a great price! www.newshosting.com
Date Thu, 4 Apr 2019 15:29:38 +0200
X-Received-Bytes 2289
X-Received-Body-CRC 2710044818
Xref csiph.com pl.comp.lang.python:141

Show key headers only | View raw


Witam
Podam pełną wersję mojej funkcji do osadzania całego obrazka w kodzie 
html. Skrypt wykrywa normalny odnośnik do obrazka i go wymienia na ciało 
kodowane w Base64. Oto kod:

def gEmbedImages(aPage):
    lResult = aPage
    lRe = 
re.compile(r"""<img\s+src\s*=\s*\"(.+?)"\s+alt\s*=\s*"(.+?)"/>""", 
re.IGNORECASE)
    lMatch = lRe.search(aPage)
    while lMatch:
       if not os.path.isfile(lMatch.group(1)):
          raise Exception("File not found! File: 
{0}".format(lMatch.group(1)))
       f = open(lMatch.group(1), 'rb')
       #lBase64 = """<img alt="{1}" 
src=”data:image/png;base64,{0}"/>""".format(base64.b64encode(f.read()).decode('ascii').replace('\n', 
''), lMatch.group(2))
       lBase64 = """<img alt="%s" src="data:image/png;base64,%s"/>""" % 
(lMatch.group(2), 
base64.b64encode(f.read()).decode('ascii').replace('\n', ''))
       lResult = lResult.replace(lMatch.group(0), lBase64)
       lMatch = lRe.search(aPage, lMatch.end())
    return lResult

Moje pytanie jest takie:
Dlaczego linia:
       #lBase64 = """<img alt="{1}" 
src=”data:image/png;base64,{0}"/>""".format(base64.b64encode(f.read()).decode('ascii').replace('\n', 
''), lMatch.group(2))

nie działa (błędnie koduje)?
A linia:

       lBase64 = """<img alt="%s" src="data:image/png;base64,%s"/>""" % 
(lMatch.group(2), 
base64.b64encode(f.read()).decode('ascii').replace('\n', ''))

działa bez zarzutu?!?

dzięki i pozdro
Szyk Cech

Back to pl.comp.lang.python | Previous | NextNext in thread | Find similar


Thread

Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!? Szyk Cech <szykcech@spoko.pl> - 2019-04-04 15:29 +0200
  Re: Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!? John Doe <john@johniedoe.com> - 2019-04-05 14:06 +0000
    Re: Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!? Szyk Cech <szykcech@spoko.pl> - 2019-04-05 18:19 +0200
      Re: Osadzanie obrazków w Html za pomocą Pythona - jedna wersja działa inna nie - dlaczego?!? John Doe <john@johniedoe.com> - 2019-04-05 17:13 +0000

csiph-web