Gå til innhold

Python lese HTML


Anbefalte innlegg

#write-html-2-windows.py

import webbrowser

f = open('helloworld.html','wb')

message = """<html>
<head></head>
<body><p>Hello World!</p></body>
</html>"""

f.write(message)
f.close()

https://programminghistorian.org/en/lessons/creating-and-viewing-html-files-with-python

Noen som vet hvordan man gjør om HTML til GUI basert grensesnitt?

For litt usikker om de som skriver slik noe vil svare.

for jeg får "byte like object required not str" som feilmelding her.

Lenke til kommentar
Videoannonse
Annonse

Hva lurer du egentlig på? 

I tittelen på emnet lurer du på "Python lese HTML". 

HTML er bare en tekst fil, så leses på samme måte som alle andre tekstfiler. 

 

Og så poster du en kodesnutt, som skriver en veldig basic HTML-kode til en fil, men du får en feilmelding. 

Hvis du bytter 'wb' med 'w' hvor du åpner filen, så løser du problemet. 

 

Og så lurer du på hvordan du gjør HTML om til et GUI interface... 

Det gjør du ved å åpne HTML-filen i nettleseren din. 

  • Liker 1
  • Innsiktsfullt 1
Lenke til kommentar

Det du sannsynligvis ønsker å gjøre er å åpne et vindu som du kontrollerer fra ditt Python-skript der du har full kontroll over GUI og logikk. Sjekk ut pywebview eller lignende.

import webview

message = """<html>
<head></head>
<body><p>Hello World!</p></body>
</html>"""

window = webview.create_window("Hello World", html=message)
webview.start()

1656772198_Screenshotfrom2020-05-1704-17-11.png.ba40296de217287f63a64b4dc37b64c3.png

  • Liker 2
Lenke til kommentar
Sitat

 TypeError: a bytes-like object is required, not 'str'

Får fremdeles denne.

Sitat

Og så lurer du på hvordan du gjør HTML om til et GUI interface... 

Det gjør du ved å åpne HTML-filen i nettleseren din. 

Problemet det funger dårlig å velge nettleser, prøver å programmere grafisk ersattning men tar litt tid.

Når jeg sliter kun å gjøre veldig grunnleggende ting.

Sitat

   Running setup.py install for webview ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\lars_\AppData\Local\Programs\Python\Python38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\lars_\\AppData\\Local\\Temp\\pip-install-szykyev0\\webview\\setup.py'"'"'; __file__='"'"'C:\\Users\\lars_\\AppData\\Local\\Temp\\pip-install-szykyev0\\webview\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\lars_\AppData\Local\Temp\pip-record-1ks7_fcx\install-record.txt'
--single-version-externally-managed --compile --install-headers 'C:\Users\lars_\AppData\Local\Programs\Python\Python38-32\Include\webview'
         cwd: C:\Users\lars_\AppData\Local\Temp\pip-install-szykyev0\webview\
    Complete output (5 lines):
    running install
    running build
    running build_ext
    building 'webview' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\lars_\AppData\Local\Programs\Python\Python38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\lars_\\AppData\\Local\\Temp\\pip-install-szykyev0\\webview\\setup.py'"'"'; __file__='"'"'C:\\Users\\lars_\\AppData\\Local\\Temp\\pip-install-szykyev0\\webview\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\lars_\AppData\Local\Temp\pip-record-1ks7_fcx\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\lars_\AppData\Local\Programs\Python\Python38-32\Include\webview' Check the logs for full command output.

Hjelper lite å installere: https://visualstudio.microsoft.com/visual-cpp-build-tools/

Endret av LMH1
Lenke til kommentar

Installer Visual Studio Build Tools 2019 med "C++ build tools".

Installer 64-bit Python 3.7 (ikke 3.8) og dependencies:

pip install pythonnet cefpython3 pywebview

Så kan du prøve å kjøre skriptet jeg foreslo, så skal det fungere.

 

  • Liker 2
Lenke til kommentar
12 hours ago, LMH1 said:
Quote

 TypeError: a bytes-like object is required, not 'str'

Får fremdeles denne.

Og du har fått svar i tråden på hvorfor du får den. Det har med modusen du åpner filen i å gjøre.

Det sagt. Dette er en klassisk felle. Du prøver å lage ting som er utenfor ditt kunnskapsnivå. Det går sjelden bra, og du ender opp med å ikke få til noe. Det er bedre å lære seg programmering skikkelig - fra grunnen. Det innebærer å ha kontroll på kontrollstrukturer, hvordan du leser feilmeldinger også videre. Jeg vil anbefale https://diveintopython3.problemsolving.io/ som er et greit læreverk i Python3.

Regn med at du må bruke noen hundre timer på programmering, før du er i stand til å lage virkelig nyttige programmer. Alt frem til det er å øve seg på tenkemåten...

  • Liker 1
Lenke til kommentar
Sitat

Installer 64-bit Python 3.7 (ikke 3.8) og dependencies

Men forstår ikke hvorfor 3.8 versjonen skulle ha problemer med dette? Er veldig poengløs med ny versjon før alt av det meste er luket ut eller er det heller

pythonnet cefpython3 pywebview

som ikke er oppdatert med nyeste python standard? Så det er ikke mulig å ungå å installere både python og Visual Studio Build Tools 2019 med "C++ build tools". hvis man bruker denne måten? for prøver å lage et program som krever minimalt av programmer som kjører, godt mulig finnes måte å konvertere programmet til c men usikker om det da mister støtte for linux\mac etc. Python har vel enkelere å utviklere en c++.

 

Endret av LMH1
Lenke til kommentar

Det kommer flere nye krav her uten at jeg vet helt hva du ønsker å gjøre.

Python 3.6 og lavere fungerer sannsynligvis også hvis du vil bruke det. 3.8 derimot støttes ikke enda av pythonnet. Alt jeg kan si er at min oppskrift fungerer på en helt ny installasjon av Windows 10 Pro. Dersom du velger å fravike så kan jeg ikke garantere at det virker. :)

Hvis noen av svarene her løser problemet du nevnte i første post så vil jeg si at problemet er løst. Ellers vil jeg anbefale at du forklarer mer i detalj hva du vil gjøre og alle kravene, og kanskje lager en ny tråd.

Endret av ahw_
  • Liker 1
Lenke til kommentar

Jeg håper å lage et lite program som lager python GUI basert på html kode, slik knappene etc og stilen blir som html sidene.

Hvis det ikke er helt umulig eller ekstremt vanskelig. For bruker html i dag for å lage grafisk elementer for det mye enklere en å programmere alt basert på gui, men vet ikke hva som er enklest eller vanskeligst. Prøver å gjøre det slik det behøver lite fra klienten.

Lenke til kommentar
1 hour ago, LMH1 said:

Jeg håper å lage et lite program som lager python GUI basert på html kode, slik knappene etc og stilen blir som html sidene.

Lær deg programmering. Det inbefatter desverre noen hundre timer lesing og øvelse. Å lage grafisk programvare som gjør nyttige ting er desverre ikke gjort på 1-2-3. Det er en ny tenkemåte for mange, og det er noe som må læres.

 

1 hour ago, LMH1 said:

Hvis det ikke er helt umulig eller ekstremt vanskelig.

Det er hverken umulig eller spesielt vanskelig, men det krever en viss forståelse av programmering, og en vilje til å lese dokumentasjon.

  • Liker 1
Lenke til kommentar
23 minutes ago, LMH1 said:

tror det blir enklere å kjøpe et program f.eks https://www.samlogic.net/cd-menu-creator/cd-menu-creator.htm

Ja, om det løser problemet du ønsker å løse er det enklere. Det er grunnen til at folk kjøper det programmet.

Det sagt; du har en voldsom interesse for teknologi, men samtidig gir du opp straks det krever mer enn fem minutters innsats å få til ting. Du blir skuffet, og klager over at ting er vanskelig, gang på gang, om alle tema. Ruting, switcher, og andre fasetter av nettverk. Solceller og annen kraftelektronikk. Programmering... The list goes on.

Ja, teknologi er ofte vanskelig. Med mindre du er villig til å sette deg inn i det vil du ikke få til noe utover standard konsument-ting. Setter du deg inn i det er det mange som mener det er en artig, utfordrende og lærerik hobby. Hva du vil fortsette med er åpenbart opp til deg, men denne mellomtingen, der du prøver på avanserte ting, uten å ville lære deg ting er bortkastet tid for alle.

  • Liker 4
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...