[Risolto] importare dati di tabelle Web con PYTHON

Creare una macro - Scrivere uno script - Usare le API
Rispondi
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

[Risolto] importare dati di tabelle Web con PYTHON

Messaggio da chimico »

Saluti ,

Sto costruendo un progetto per il mio corso di College usando la macro Python applicata in LibreOffice .

Ho ricercato il forum e ho trovato un ottimo esempio in questo argomento .

Devo importare la seguente tabella di valori Web .

ma non sono in grado di adattare correttamente la macro Python per importare la tabella in LibreOffice .

la macro Python completa che sto usando è questa :

Codice: Seleziona tutto

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])
Sono grato per l'aiuto , Ho inserito il mio file allegato con la macro Python .

abbracci amici .
Allegati
import_html.ods
(10 KiB) Scaricato 237 volte
Ultima modifica di chimico il giovedì 11 aprile 2019, 16:16, modificato 1 volta in totale.
LibreOffice 5.4.4.2 no Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

Non so usare con Libre le macro in python, però ho provato lo script con Python Idle e funziona bene, devi individuare le posizioni dei dati che ti interessano nell'array (cosa che non mi sembra facile) e quindi trasferirle nel foglio.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

Perchè vuoi usare Python? e non il basic?
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

buona domanda, si potrebbe fare semplicemente con

Codice: Seleziona tutto

Sub Main
call InsertWebLinkAtSelection("https://coinmarketcap.com/#currencies_wrapper","1")
End Sub

Sub InsertWebLinkAtSelection(url As String, section As String)
Dim oAddress As new com.sun.star.table.CellAddress
oDoc = ThisComponent
oSelection = oDoc.getCurrentController().getSelection()
if oSelection.supportsService("com.sun.star.sheet.SheetCell") then
    oAddress = oSelection.getCellAddress()
    oDoc.AreaLinks.insertAtPosition(oAddress,url,"HTML_" +  section,"calc_HTML_WebQuery","0 0")
    oDoc.AreaLinks.removeByIndex(getCount())
endif
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: importare dati di tabelle Web con PYTHON

Messaggio da chimico »

Saluti sr. patel e sr. Gaetanopr ,

grazie mille per la tua attenzione, perché mi hanno sempre aiutato molto nella risoluzione di altri argomenti che ho postato qui nel forum .

patel: grazie per il codice di base che hai pubblicato, sarà sicuramente molto utile .

Gaetanopr: sto lavorando a un progetto per il mio corso studente di Facoltà, quindi ho bisogno di costruire per questo progetto di Facoltà una macro Python per l'importazione di dati Web in LibreOffice Calc .

per questo motivo , deve essere una macro Python , tutto l'aiuto sarà molto ben accolto .

abbracci amici .
LibreOffice 5.4.4.2 no Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

Comunque l'esempio di vladboscaneanu che hai scelto non mi sembra facile da utilizzare, come hai potuto vedere molti ci hanno provato senza successo, ti conviene cercare altro, qualcosa di simile alla macro basic che ti ho mostrato.
Forse è arrivato il momento in cui tu puoi aiutare me, nel file che hai allegato non riesco a modificare la macro python, come devo fare ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

Ciao patel, io uso Notepad++, comunque credo che dovresti fare un ciclo per la lunghezza dell'array e scrivere i valori nelle celle tipo qualcosa del genere.

Codice: Seleziona tutto

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])
Lanciando la macro dall'ide di python si ottengono questi dati

Codice: Seleziona tutto

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
================ RESTART: D:\Users\Gaetano\Desktop\chimico.py ================
['Advertise', 'Deutsch', 'English', 'Español', 'Filipino', 'Français', 'हिन्दी', 'Italiano', '日本語', '한국어', 'Português Brasil', 'Русский', 'Türkçe', 'Tiếng Việt', '简体中文', '繁體中文', '\n', '\n', 'Blog', 'Deutsch', 'English', 'Español', 'Filipino', 'Français', 'हिन्दी', 'Italiano', '日本語', '한국어', 'Português Brasil', 'Русский', 'Türkçe', 'Tiếng Việt', '简体中文', '繁體中文', 'Disclaimer', 'Request Form', 'Terms of Use', 'Privacy Policy', 'Advertise', 'All Cryptocurrencies', 'Coins', 'Tokens', 'Gainers & Losers', 'Recently Added', 'Daily Volume', 'Monthly Volume', 'Adjusted Volume', 'Reported Volume', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', 'Blog', 'All Cryptocurrencies', 'Coins', 'Tokens', 'Gainers & Losers', 'Recently Added', 'Daily Volume', 'Monthly Volume', 'Adjusted Volume', 'Reported Volume', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', 'Disclaimer', 'Request Form', 'Terms of Use', 'Privacy Policy', 'Advertise', 'Next 100 →', 'View All', 'Rankings ', 'Top 100', 'Full List', 'Top 100', 'Full List', 'Market Cap by Circulating Supply', 'Market Cap by Total Supply', 'Filter Non-Mineable', 'Top 100', 'Full List', 'Market Cap by Circulating Supply', 'Market Cap by Total Supply', 'Top 100 By Adjusted Volume', 'Top 100 By Reported Volume', 'Cryptocurrencies ', 'Top 100', 'Full List', 'Top 100', 'Full List', 'Market Cap by Circulating Supply', 'Market Cap by Total Supply', 'Filter Non-Mineable', 'Top 100', 'Full List', 'Market Cap by Circulating Supply', 'Market Cap by Total Supply', 'Exchanges ', 'Top 100 By Adjusted Volume', 'Top 100 By Reported Volume', 'Watchlist', 'BTC', 'Bitcoin', '$5211.34', '$16,355,884,034', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ETH', 'Ethereum', '$170.37', '$8,091,743,667', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XRP', 'XRP', '$0.339350', '$1,513,980,458', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'EOS', 'EOS', '$5.63', '$3,646,953,582', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LTC', 'Litecoin', '$82.02', '$2,910,406,008', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BCH', 'Bitcoin Cash', '$281.44', '$1,612,276,155', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BNB', 'Binance Coin', '$17.77', '$174,903,744', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XLM', 'Stellar', '$0.119182', '$353,079,825', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'USDT', 'Tether', '$1.01', '$16,964,001,198', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ADA', 'Cardano', '$0.085853', '$147,276,253', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'TRX', 'TRON', '$0.027453', '$524,118,248', '\n\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BSV', 'Bitcoin SV', '$75.71', '$172,769,242', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XMR', 'Monero', '$67.74', '$126,245,309', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DASH', 'Dash', '$125.68', '$316,117,860', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MIOTA', 'IOTA', '$0.332126', '$20,489,084', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'NEO', 'NEO', '$11.54', '$278,803,667', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ETC', 'Ethereum Classic', '$6.63', '$557,500,194', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MKR', 'Maker', '$690.67', '$1,996,829', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ONT', 'Ontology', '$1.39', '$97,881,052', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XTZ', 'Tezos', '$0.978649', '$4,720,924', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XEM', 'NEM', '$0.068514', '$28,299,484', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ZEC', 'Zcash', '$68.68', '$359,805,282', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'CRO', 'Crypto.com Chain', '$0.082793', '$3,568,291', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'VET', 'VeChain', '$0.006813', '$18,076,499', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BAT', 'Basic Attenti...', '$0.276616', '$31,499,797', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DOGE', 'Dogecoin', '$0.002877', '$46,669,915', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'OMG', 'OmiseGO', '$2.10', '$88,288,415', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BTG', 'Bitcoin Gold', '$16.78', '$16,880,760', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'QTUM', 'Qtum', '$3.09', '$171,419,724', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'WAVES', 'Waves', '$2.65', '$36,523,622', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'USDC', 'USD Coin', '$1.00', '$56,262,811', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DCR', 'Decred', '$24.13', '$4,306,609', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LSK', 'Lisk', '$1.96', '$6,059,664', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'RVN', 'Ravencoin', '$0.063311', '$26,397,079', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'NANO', 'Nano', '$1.56', '$12,627,805', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'TUSD', 'TrueUSD', '$1.00', '$130,084,159', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'REP', 'Augur', '$18.25', '$7,222,492', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ZRX', '0x', '$0.339376', '$24,073,372', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ZIL', 'Zilliqa', '$0.021270', '$20,367,407', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BTS', 'BitShares', '$0.067772', '$8,722,417', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ICX', 'ICON', '$0.381144', '$14,692,594', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BCD', 'Bitcoin Diamond', '$1.16', '$17,198,977', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LINK', 'Chainlink', '$0.502923', '$8,297,416', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BCN', 'Bytecoin', '$0.000929', '$465,794', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'HOT', 'Holo', '$0.001248', '$9,889,265', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'IOST', 'IOST', '$0.013784', '$49,000,029', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DGB', 'DigiByte', '$0.013239', '$1,994,931', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'AE', 'Aeternity', '$0.589346', '$32,057,479', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XVG', 'Verge', '$0.009102', '$5,713,941', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'NPXS', 'Pundi X', '$0.000709', '$5,105,474', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'STEEM', 'Steem', '$0.443329', '$2,573,741', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'SC', 'Siacoin', '$0.003258', '$3,759,424', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'HT', 'Huobi Token', '$2.51', '$70,631,697', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BTM', 'Bytom', '$0.124418', '$9,734,251', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'KMD', 'Komodo', '$1.10', '$2,795,275', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'BTT', 'BitTorrent', '$0.000725', '$78,890,710', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ABBC', 'ABBC Coin', '$0.268995', '$47,973,150', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MXM', 'Maximine Coin', '$0.071816', '$16,616,918', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'STRAT', 'Stratis', '$1.17', '$3,716,662', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'PAX', 'Paxos Standar...', '$1.00', '$122,504,442', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ENJ', 'Enjin Coin', '$0.141628', '$12,932,427', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'AOA', 'Aurora', '$0.016369', '$2,107,351', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'THETA', 'THETA', '$0.117822', '$6,570,961', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'KCS', 'KuCoin Shares', '$1.13', '$2,765,988', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DGTX', 'Digitex Futures', '$0.138004', '$2,599,008', '\n ', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'DAI', 'Dai', '$0.987352', '$42,036,357', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XIN', 'Mixin', '$208.33', '$1,120,796', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'SNT', 'Status', '$0.026367', '$18,897,636', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'PAI', 'Project Pai', '$0.062649', '$6,253,466', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'PPT', 'Populous', '$1.67', '$8,866,139', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'GNT', 'Golem', '$0.089935', '$3,403,423', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'WTC', 'Waltonchain', '$1.97', '$6,723,913', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'INB', 'Insight Chain', '$0.229211', '$4,926,070', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ARDR', 'Ardor', '$0.079718', '$1,428,935', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'FCT', 'Factom', '$8.42', '$194,544', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'WAX', 'WAX', '$0.084077', '$1,532,435', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'CNX', 'Cryptonex', '$1.41', '$9,612,344', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'QBIT', 'Qubitica', '$27.00', '$42,366', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'GXC', 'GXChain', '$1.18', '$15,847,441', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ARK', 'Ark', '$0.629647', '$1,085,913', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'R', 'Revain', '$0.138781', '$909,621', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'HC', 'HyperCash', '$1.51', '$3,135,332', '\n ', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'THR', 'ThoreCoin', '$754.43', '$94,247', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MCO', 'Crypto.com', '$4.08', '$8,305,787', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LRC', 'Loopring', '$0.077481', '$26,652,651', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MAID', 'MaidSafeCoin', '$0.140672', '$438,518', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LAMB', 'Lambda', '$0.126576', '$17,426,768', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'VEST', 'VestChain', '$0.008938', '$13,881', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'GUSD', 'Gemini Dollar', '$0.999172', '$6,973,944', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ELA', 'Elastos', '$4.03', '$5,114,384', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'WICC', 'WaykiChain', '$0.314514', '$7,974,202', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'XZC', 'Zcoin', '$8.05', '$1,141,782', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'NULS', 'NULS', '$0.817697', '$16,469,839', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'AION', 'Aion', '$0.189912', '$4,424,744', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'LOOM', 'Loom Network', '$0.071949', '$2,968,934', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ETN', 'Electroneum', '$0.006013', '$322,940', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'MANA', 'Decentraland', '$0.052940', '$8,279,791', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'NAS', 'Nebulas', '$1.18', '$8,647,304', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'PIVX', 'PIVX', '$0.931979', '$1,440,477', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'ELF', 'aelf', '$0.184872', '$14,574,783', '\n', 'Add to Watchlist', 'Remove from Watchlist', 'Watchlist full!', 'View Chart', 'View Markets', 'View Historical Data', 'Next 100 →', 'View All', 'Advertise', 'Crypto API', 'Disclaimer', 'Privacy', 'Terms', 'FAQ', 'Methodology', 'Request Form', 'Careers', 'Blog', 'Newsletter', 'Facebook', 'Twitter', 'Telegram', '\n', '3CMCRgEm8HVz3DrWaCCid3vAANE42jcEv9', 'LTdsVS8VDw6syvfQADdhf2PHAm3rMGJvPX', '0x0074709077B8AE5a245E4ED161C971Dc4c3C8E2B', '1LVXG4Z4oF6TrJfmUfSuLX8nqb8c5eCwha', 'Privacy Policy']
>>> 
Dovresti andare andare a controllare quelli da te interessati e tramite l'indice che parte da 0 immetterli nelle celle, ad esempio de indichi indice 7 ottieni "italiano" e così.....un lavoraccio!!!!!!
Si potrebbero splittare e mettere su un foglio calc e tramite la riga(indice) ricavare quelli che necessitano.....sempre un lavoraccio.
Ultima modifica di Gaetanopr il giovedì 11 aprile 2019, 12:01, modificato 1 volta in totale.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

Ciao Gaetano, forse non mi sono spiegato bene, io apro con LO il file di chimico, come faccio a vedere la macro ed editarla ? ho installato anche apso, ma non riesco a modificare il codice
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

Io l'ho messa nella cartella python di libreoffice, andando su programmi, libreoffice, share, Scripts, Python
Puoi editarla tramite l'estensione apso direttamente da libreoffice(credo).
Io l'ho modificata con Notepad++.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

tu ce l'hai messa perché chimico l'ha pubblicata sul forum, ma se non l'avesse fatto ed avesse soltanto allegato il file ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: importare dati di tabelle Web con PYTHON

Messaggio da chimico »

patel ,
per Visualizzare il codice Python del file LO, devi andare a: Strumenti > Macros > Organizza lo script Python , questo aprirà la finestra degli script Python di APSO , allora dovresti espandere il nome del file e selezionare la macro python , quindi vai su Menu e fai clic su mettere a punto ( Debug ) .
osservazione:
per questo , APSO deve essere già stato installato .

per Modificare il codice Python del file LO , si va allo stesso modo, ma quando si preme Menu, quindi selezionare Modifica .
quindi apportare le modifiche necessarie, quindi salvare il file e infine chiudere e riaprire .
osservazione:
per questo , devi anche avere un IDE in cui sviluppi il codice Python .


Gaetanopr ,
Ho applicato il tuo codice Python, ma si è verificato un errore con il seguente messaggio:
expected an indented block (<unknown>, line 31)
a seconda della posizione del codice nel mio script, l'errore si è verificato su questa linea:

Codice: Seleziona tutto

for i in range(len(parser.dataArray)):
segue l'allegato con la tua macro Python .
Allegati
import_html_Gaetanopr.ods
(10.04 KiB) Scaricato 225 volte
LibreOffice 5.4.4.2 no Windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

Con apso non mi permette di modificare, quando vado su modifica si apre una finestra ed esce fuori.
Comunque il problema che riscontri è legato alla indentazione del codice, in basic non è fondamentale serve più che altro alla buona lettura di esso, in python invece è di estrema importanza, serve a dividere il blocco delle istruzioni.
Allegati
1_import_html.ods
(8.24 KiB) Scaricato 205 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

Gaetanopr ha scritto:Con apso non mi permette di modificare, quando vado su modifica si apre una finestra ed esce fuori.
anche a me
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: importare dati di tabelle Web con PYTHON

Messaggio da chimico »

Gaetanopr ,
Grazie per il tuo aiuto e attenzione , il tuo codice ora funziona, ma l'importazione dei dati avviene solo nella colonna A . :super:

Cercherò di organizzare i dati, per questo dovrò anche cercare un comando per chiamare una macro di base all'interno della macro python .

Lascerò l'argomento aperto per possibili nuove soluzioni . :)


patel ,
prova a fare l'operazione di Modifica con il tuo IDE python aperto, forse funzionerà così

amici abbraccio .
LibreOffice 5.4.4.2 no Windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

chimico ha scritto: il tuo codice ora funziona, ma l'importazione dei dati avviene solo nella colonna A . :super:
Non hai seguito il mio ragionamento, l'importazione nella sola colonna A è intenzionale, ti ho splittato tutti i dati dell'Array, ora tocca a te individuare quali voci ti servono e ricavarne gli indici che in Questo modo corrispondono al numero di riga - 1, ti ho fatto pure l'esempio della stringa "italiano" che viene riportata nella riga 8 (indice 7) quindi se ad esempio tu volessi riportare questa voce nella cella A1 ti basterà fare

Codice: Seleziona tutto

activeSheet.getCellRangeByName("A1").setString(parser.dataArray[7])
e così via..puoi organizzare tutto tramite un ciclo for avendo a conoscenza tutti gli indici che ti occorre prelevare..ma questo lo sai solo tu.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

[Risolto] importare dati di tabelle Web con PYTHON

Messaggio da chimico »

Gaetanopr ,
Grazie, seguirò le tue istruzioni, ora capisco meglio. Congratulazioni per la tua macro Python, è stata molto buona . :bravo:

Sono al lavoro proprio ora, quando torno a casa, studierò le tue istruzioni più da vicino . :super:


amico abbraccio .
LibreOffice 5.4.4.2 no Windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

patel ha scritto:
Gaetanopr ha scritto:Con apso non mi permette di modificare, quando vado su modifica si apre una finestra ed esce fuori.
anche a me
io ho risolto impostando Notepad++ come programma di apertura predefinito per i files .py
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: importare dati di tabelle Web con PYTHON

Messaggio da patel »

Gaetanopr ha scritto: io ho risolto impostando Notepad++ come programma di apertura predefinito per i files .py
funziona anche a me, grazie
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: [Risolto] importare dati di tabelle Web con PYTHON

Messaggio da vladboscaneanu »

Carrisimi amici, un cordiale ciao a tutti.
Scusate la mia lunga assenza, spero molto di poter tornare prossimamte operativo, nella vostra ( nostra ) fantastica comunita.
Patel, dovvremo continuare il discorso su python, anche perche nel fratempo sono passato da PyCharm a Sublime Text, un scelta
fantastica da mio punto di visto, quindi avro da condividere con te,ma anche con il forum, alcuni suggerimenti sul funzionamento
del Python.
Per quello che riguarda l'argomento, vorrei spiegarvi il funzionamento di quel scarabacchio:
1. Il motore del codice è la classe MyParser, che eredita tutte le proprietà dal HTMLParser, presente
nella libreria originale Python.
2.Detto questo, ho modificato alcune delle funzioni, ereditate dalla sopra nominata classe, esattamente la
__init__, handle_starttag, handle_endtag. Praticamente quando si analizza la web pagina, se il tag coincide col tag richiesto,
nella array viene aggiunto il testo, contente nel tag.
Tutto il resto è un gioco da bambini : tramite la libreria urllib.request si apre la pagina web MyUrl,
viene creato l'oggetto parser, con la nostra classe MyParser, nel momento della creazione va indicato il tag ricercato
, che sarebbe "a" nel nostro caso, poi si restituisce l'array, contenente l'informazione trovata.
Dopo si accede al foglio attivo, quindi si popolano le celle.
Python con LibreOffice è più che fantastico, sono il top assoluto.
Per farvi venire un po l'appetito, ecco una bozza su una estensione , che vorrei realizzare prossimamente...difficile realizzare una cosa
simile col Basic.
Praticamente si tratta di un traduttore, a-la Google Translator...c'è da fare ancora molta strada, però funzionare funziona.
Anzi, un vostro aiuto sarebbe molto gradito.
Ciao.
input.png
input.png (11.5 KiB) Visto 7089 volte
output.png
Allegati
_sample.zip
(525 Byte) Scaricato 139 volte
LibreOffice ultima versione su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] importare dati di tabelle Web con PYTHON

Messaggio da patel »

vladboscaneanu ha scritto: Patel, dovvremo continuare il discorso su python, anche perche nel fratempo sono passato da PyCharm a Sublime Text, un scelta
fantastica da mio punto di visto, quindi avro da condividere con te,ma anche con il forum, alcuni suggerimenti sul funzionamento
del Python.
Io sono disponibile ad imparare ad usare il python su LO, ma devi partire da zero spiegando bene cosa bisogna fare per scrivere e editare macro direttamente da Libre
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] importare dati di tabelle Web con PYTHON

Messaggio da Gaetanopr »

Pure io sono disponibile per quel poco tempo che ho, sarebbe buono creare una sezione a parte come nel forum internazionale dove poter inserire tutte le discussioni in merito e spostare quelle presenti nell'area Macro.
Vediamo cosa ne pensa il nostro amministratore :D

@vladboscaneanu per il tuo progetto aprirei una nuova discussione
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Rispondi