Pagina 1 di 1

[Risolto] importare dati di tabelle Web con PYTHON

Inviato: martedì 9 aprile 2019, 8:04
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 .

Re: importare dati di tabelle Web con PYTHON

Inviato: mercoledì 10 aprile 2019, 12:50
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.

Re: importare dati di tabelle Web con PYTHON

Inviato: mercoledì 10 aprile 2019, 19:05
da Gaetanopr
Perchè vuoi usare Python? e non il basic?

Re: importare dati di tabelle Web con PYTHON

Inviato: mercoledì 10 aprile 2019, 20:44
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

Re: importare dati di tabelle Web con PYTHON

Inviato: mercoledì 10 aprile 2019, 21:06
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 .

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 9:05
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 ?

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 10:38
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.

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 11:50
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

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 11:59
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++.

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 13:18
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 ?

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 13:44
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 .

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 15:06
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.

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 15:49
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

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 15:52
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 .

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 16:04
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.

[Risolto] importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 16:14
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 .

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 16:59
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

Re: importare dati di tabelle Web con PYTHON

Inviato: giovedì 11 aprile 2019, 18:09
da patel
Gaetanopr ha scritto: io ho risolto impostando Notepad++ come programma di apertura predefinito per i files .py
funziona anche a me, grazie

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

Inviato: giovedì 11 aprile 2019, 18:57
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 7103 volte
output.png

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

Inviato: giovedì 11 aprile 2019, 19:30
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

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

Inviato: giovedì 11 aprile 2019, 19:44
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