Muszę zbudować projekt z makrem Python, aby pobrać dane z Internetu do LibreOffice Calc .
Chcę pobrać dane z poniższej tabeli sieci Web .
Znalazłem makro Pythona, które robi część akcji ratunkowej, ale nie mogę zrealizować całego stołu Web .
oto szablon, który znalazłem w Internecie, to python makro tylko ratuje kawałek stołu, ale nie mogę zrealizować całej tabeli .
Kod: Zaznacz cały
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):
activeSheet.getCellRangeByName("A1").setString(parser.dataArray[45])
activeSheet.getCellRangeByName("B1").setString(parser.dataArray[46])
activeSheet.getCellRangeByName("A2").setString(parser.dataArray[47])
activeSheet.getCellRangeByName("B2").setString(parser.dataArray[48])