Seite 1 von 1
[Gelöst] [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: So 7. Apr 2019, 20:39
von genie
Grüße ,
muss ich Daten von einer
Webseite mit
Python-Makro in LibreOffice Calc importieren .
Ich habe im Forum nachgesehen und ein tolles Python-Makro gefunden
hier .
Ich habe versucht, das
Python-Makro aus dem gefundenen Thema auszuführen, aber es gelingt mir nicht .
gibt es einen Fehler, den ich mache
? Ich benutze die
IDE PyCharm
Community und habe bereits
APSO in LibreOffice heruntergeladen .
Im Anhang folgt die LibreOffice-Datei mit dem Python-Makro .
Re: [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Mo 6. Mai 2019, 08:39
von karolus
hallo
[disclaimer]ich hab das vom OP verlinkte Dokument nicht zusammengebaut, von mir stammt lediglich der python-Sourcecode[/disclaimer]
da ich den Sourcecode geschrieben habe den du im Dokument verwendest, habe ich mir das Teil nochmal angeschaut.
Wenn du da schon einen
komischen Button einbaust das etwas tun soll dann musst du den auch mit der richtigen Funktion verknüpfen,
das wäre dann nämlich die Funktion
main und nicht die Funktion
get_contents, daraus resultierend musst du auch die Signatur von
main ändern damit sie auch Argumente zumindest annimmt:
Code: Alles auswählen
def main(): #funktioniert nicht
#aber
def main(*_) #funktioniert
Hier nochmal eine korrigierte Datei:
Bei weiteren Fragen bitte ich darum, mitzuteilen was du so gemacht hast, und welche Fehlermeldungen kommen. Danke!
Re: [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Do 9. Mai 2019, 00:05
von genie
Grüße
karolus ,
Ich habe bereits viele Versuche unternommen, um das
REQUESTS-Modul zu installieren. Kein Versuch hat funktioniert. Daher kann ich kein Python-Programm mit dem REQUESTS-Paket ausführen .
Ich habe nach neuen Modulen gesucht, um ein Python-Programm auszuführen, um Daten von einer Webseite in LibreOffice zu importieren .
Ich habe einen Code gefunden, der für mich funktioniert, aber dieser Code importiert die Daten in eine einzige Spalte. Ich brauche die Datenarchitektur im Arbeitsblatt, um die Architektur der Internet-Quellseite zu sehen .
Hier ist der Code, der für mich funktioniert:
Code: Alles auswählen
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import urllib.request
from html.parser import HTMLParser
#------defining parser ---#
class MyParser(HTMLParser):
def __init__(self,target_tag):
HTMLParser.__init__(self)
self.targetTag=target_tag
self.targetFound=False
self.dataArray=[]
def handle_starttag(self,tag,attrs):
self.targetFound=False
if (tag==self.targetTag):
self.targetFound=True
def handle_endtag(self,tag):
if tag==self.targetTag:
self.targetFound=False
def handle_data(self, data):
if (self.targetFound):
self.dataArray.append(data)
####### target URL #######################
MyUrl='https://coinmarketcap.com/#currencies_wrapper'
OpenUrl=urllib.request.urlopen(MyUrl)
####### get the html code ################
responseHTML=OpenUrl.read().decode('utf-8')
parser=MyParser("a")
parser.feed(responseHTML)
# LibreOffice code #
activeSheet=XSCRIPTCONTEXT.getDocument().getCurrentController().getActiveSheet()
def LastMessage(*args):
for i in range(len(parser.dataArray)):
activeSheet.getCellByPosition(0, i).setString(parser.dataArray[i])
Ich habe auch ein anderes
modell zum Importieren von Daten aus dem Internet recherchiert und entdeckt. Dieses Modell verwendet das Paket
html.parser .
Beobachtung:
Ich muss die Daten auf eine organisierte Weise importieren, d. H. Ähnlich der Webseite der Quelle, in die Sie die Daten importieren .
Ich kann immer noch keinen Code erstellen, um die Daten auf eine organisierte Weise in Spalten zu importieren, die für mich geeignet sind, genauso wie auf der ursprünglichen Webseite .
Re: [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Do 9. Mai 2019, 07:32
von Wanderer
Hallo,
der Code der für Dich funktioniert schreibt einfach die Inhalte aller a-Tags in ein Array. Dies wird hinterher in eine Spalte kopiert.
Dein anderes "Modell" nutzt dieselbe library, hat aber spezielle Routinen definiert um auf verschiedene Tags zu reagieren.
Entsprechend musst DU die gewünschte html-Seite analysieren und rausfinden wie die Daten kodiert sind, die Du brauchst und einen angepassten Parser erstellen
Mfg, Jörn.
Re: [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Do 9. Mai 2019, 09:03
von genie
Ich möchte die Tabellendaten von dieser webseite
hier importieren , sind sieben Spalten, um die Spalte Change (24h) .
Ich möchte das LibreOffice-Arbeitsblatt in organisierten Spalten wie auf der ursprünglichen Webseite einfügen .
Ich kann dieses Python-Programm jedoch nicht ausführen. Ich habe bereits Beispiele mit dem Paket REQUESTS ausprobiert. Dieses Paket funktioniert jedoch nicht für min. Daher muss ich versuchen, das paket
Html.Parser auszuführen .
Ich habe dieses Problem hier veröffentlicht. Vielleicht kann mir jemand helfen, die Daten mit dem paket html.parser zu importieren .
Re: [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Do 9. Mai 2019, 21:59
von karolus
Es gibt weder ein Modul REQUESTS noch ein modul Html.Parser eben weil Modulnamen im allgemeinen komplett in Kleinbuchstaben geschrieben werden.
Könntest du mal etwas genauer ausführen wo bei dir requests scheitert, hast du überhaupt mal in der Windowsshell:
pip install requests --user
versucht?
[Gelöst] [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: Sa 11. Mai 2019, 17:54
von genie
Ich habe es jetzt in der Windows-Shell und auch in der
PyCharm-Shell gemacht .
Dann wird das
Requests-modul installiert. Vielen Dank für Ihre Anleitung .
eine große Umarmung .
Re: [Gelöst] [Python] Das Importieren von Webdaten funktioniert nicht
Verfasst: So 12. Mai 2019, 14:22
von karolus
Dann zeig doch bitte mal deine Lösung, ich möchte meine Lösung nicht posten bevor ich nicht weiss ob du selbst etwas sinnvolles produziert hast.
(*ich hab nämlich bisher den Eindruck das du nur faul irgendetwas zusammenkopierst und hoffst das es das tut was du möchtest.)
Mit freundlichen Grüßen
Karolus