Não sei se estou a escrever no fio certo, mas espero que me possam corrigir. E mais uma coisa para esclarecer - sou um zero total na programação!
Assim, encontrei um código de um pequeno programa escrito em PYTHON que pega numa citação do par EUR/USD de um site conhecido e escreve-o na célula A1 do ficheiro EUR_USD_QUOTE.csv.
Se alguém não se importar, por favor melhore este código para que uma cotação seja automaticamente actualizada na mesma célula A1 do ficheiro EUR_USD_QUOTE.csv de hora a hora.
Atenciosamente, Vladimir.
import csv
import requests
from bs4 import BeautifulSoup
import os
def get_data(url_to_scrap='https://ru.investing.com/currencies/streaming-forex-rates-majors',
file=None, save_file="Name.csv"):
if url_to_scrap is not None:
header = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'}
r = requests.get(url_to_scrap, headers=header)
data = BeautifulSoup(r.content, 'html.parser')
else:
data = BeautifulSoup(open(file), 'html.parser')
table = data.find('tr', id='pair_1')
table = table.find_all(class_='pid-1-bid')
row_data = []
for row in table:
row_data.append([row.get_text()])
with open(save_file, 'w') as save:
for row in row_data:
writer = csv.writer(save, delimiter=';')
writer.writerow(row)
os.startfile(save_file)
get_data(save_file='EUR_USD_QUOTE.csv')
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
Não sei se estou a escrever no fio certo, mas espero que me possam corrigir. E mais uma coisa para esclarecer - sou um zero total na programação!
Assim, encontrei um código de um pequeno programa escrito em PYTHON que pega numa citação do par EUR/USD de um site conhecido e escreve-o na célula A1 do ficheiro EUR_USD_QUOTE.csv.
Se alguém não se importar, por favor melhore este código para que uma cotação seja automaticamente actualizada na mesma célula A1 do ficheiro EUR_USD_QUOTE.csv de hora a hora.
Atenciosamente, Vladimir.
import csv
import requests
from bs4 import BeautifulSoup
import os
def get_data(url_to_scrap='https://ru.investing.com/currencies/streaming-forex-rates-majors',
file=None, save_file="Name.csv"):
if url_to_scrap is not None:
header = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'}
r = requests.get(url_to_scrap, headers=header)
data = BeautifulSoup(r.content, 'html.parser')
else:
data = BeautifulSoup(open(file), 'html.parser')
table = data.find('tr', id='pair_1')
table = table.find_all(class_='pid-1-bid')
row_data = []
for row in table:
row_data.append([row.get_text()])
with open(save_file, 'w') as save:
for row in row_data:
writer = csv.writer(save, delimiter=';')
writer.writerow(row)
os.startfile(save_file)
from datetime import datetime
import time
t = datetime.now().hour
t2 = t
while True:
t = datetime.now().hour
if(t2 != t):
get_data(save_file='EUR_USD_QUOTE.csv')
t2 = t
time.sleep(10)
Lancei o código finalizado no ambiente de desenvolvimento PyCharm, mas ainda nada acontece, apenas o botão "Rerun" está activado. Ainda não consigo compreender - o código funciona ou não?
Existe também informação adicional apresentada no separador "Problemas":
PEP 8: E402 nível de módulo de importação não no topo do ficheiro: 28 - isto diz respeito à linha com o código da data/hora de importação
PEP 8: E402 nível de módulo de importação não no topo do ficheiro: 29 - isto diz respeito ao tempo deimportação de linha
Remover parênteses redundantes - quando removi estes parênteses do código, a mensagem desapareceu.
Maxim, pode fazer temporariamente a citação na actualização do ficheiro agora pelo menos em 1 minuto para compreender se o código está a funcionar ou não, caso contrário tenho de esperar uma hora inteira...?
Só mais uma coisa. Depois de ter lançado o código inicial que tinha publicado anteriormente, o ficheiro EUR_USD_QUOTE.csv foi imediatamente aberto com a citação actual, enquanto que o código modificado não pode abrir este ficheiro.
Talvez eu esteja a fazer algo errado ou não compreendo alguma coisa? Por favor, aconselhem-me.
Executei o código finalizado no ambiente de desenvolvimento PyCharm, mas ainda nada acontece, apenas o botão "Rerun" está activado. Ainda não consigo entender - o código funciona ou não?
Existe também informação adicional apresentada no separador "Problemas":
PEP 8: E402 nível de módulo de importação não no topo do ficheiro: 28 - isto diz respeito à linha com o código da data/hora de importação
PEP 8: E402 importação ao nível do módulo não no topo do ficheiro: 29 - isto refere-se ao tempo deimportação da linha
Remover parênteses redundantes - quando removi estes parênteses do código, a mensagem desapareceu.
Maxim, pode fazer uma citação temporária na actualização do ficheiro agora, pelo menos em 1 minuto, para compreender se o código está a funcionar ou não, tenho de esperar uma hora inteira...?
Só mais uma coisa. Depois de ter lançado o código inicial que tinha publicado anteriormente, o ficheiro EUR_USD_QUOTE.csv foi imediatamente aberto com a citação actual, enquanto que o código modificado não pode abrir este ficheiro.
Talvez eu esteja a fazer algo errado ou não compreendo alguma coisa? Por favor, aconselhem-me.
Cumprimentos, Vladimir.
1º 2 erros - basta mover isto para o topo do ficheiro
from datetime import datetime
import time
Isto é apenas um aviso de estilo de programação, não um erro
Para uma verificação rápida, substitua ambos os campos
hour
para
segundo
o ficheiro deve ser escrito de 10 em 10 segundos porque o temporizador de verificação está definido para 10 segundos.
P.S. Apenas não se entusiasme demasiado ou será banido por pedidos demasiado frequentes.
t = datetime.now().hour
t2 = t
while True:
t = datetime.now().hourif(t2 != t):
get_data(save_file='EUR_USD_QUOTE.csv')
t2 = t
time.sleep(10)
entre parênteses não tenho nenhum erro
Este código espera até à hora seguinte e depois só salva
Maxim, alterei o vosso código um pouco pelo método "experiência científica" (por favor desculpem-me antes) e foi possível abrir o ficheiro EUR_USD_QUOTE.csv com a citação actual em 1 minuto após o lançamento.
from datetime import datetime
import time
t = datetime.now().minute # здесь поставил минуту
t2 = t
while True:
t = datetime.now().minute # здесь поставил минуту
if t2 != t:
get_data(save_file='EUR_USD_QUOTE.csv')
t2 = t
# Code executed here
time.sleep(1) # и здесь 10 изменил на 1.
Mas se eu não fechar o ficheiro EUR_USD_QUOTE.csv durante o próximo minuto, recebo esta mensagem:
Traceback (última chamada): Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 36, em <module> get_data(save_file='EUR_USD_QUOTE.csv') Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 21, em get_data com open(save_file, 'w') as save: PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
Processo terminado com o código de saída 1
Como posso fazer com que o processo continue sem intervenção humana depois de o código do programa ter sido executado?
Maxim, alterei o vosso código um pouco pelo método "experiência científica" (por favor desculpem-me antes) e foi possível abrir o ficheiro EUR_USD_QUOTE.csv com a citação actual em 1 minuto após o lançamento.
Mas se eu não fechar o ficheiro EUR_USD_QUOTE.csv durante o próximo minuto, recebo esta mensagem:
Traceback (última chamada): Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 36, em <module> get_data(save_file='EUR_USD_QUOTE.csv') Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 21, em get_data com open(save_file, 'w') as save: PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
Processo terminado com o código de saída 1
Como posso fazer com que o processo continue sem intervenção humana depois de o código do programa ter sido executado?
Cumprimentos, Vladimir.
ah sim, porque o processo está ocupado os.startfile() por alguma razão, apague esta linha
e sim, porque o processo está ocupado os.startfile() por alguma razão, apague essa linha
и
pode ser apagado.
Verificou-o, funciona.
Maxim, fez tudo como aconselhou. Não foram relatados mais problemas. O programa começou, mas agora como posso ver a citação se o ficheiro EUR_USD_QUOTE.csv está fechado e quando o abro e deixo aberto recebo a mesma mensagem que PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv' e a citação no ficheiro aberto já não está actualizada?
Mais uma vez, peço desculpa, nunca escondi que sou um zero total na programação.
Maxim, eu fiz tudo como aconselhou. Não há mais mensagens sobre problemas. Agora como posso ver a citação se o ficheiro EUR_USD_QUOTE.csv está fechado e quando o abro e o deixo aberto, recebo a mesma mensagem que PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv' e a citação no ficheiro aberto já não está actualizada?
Peço desculpa mais uma vez, nunca escondi que sou um zero total na programação.
Cumprimentos, Vladimir.
Abre o ficheiro com Excel? Significa que abre o ficheiro de forma monopolística. Tem de permitir que outras aplicações/utilizadores modifiquem o ficheiro.
Возможности системы Microsoft Excel позволяют работать по наполнению одного файла электронных таблиц одновременно нескольким пользователям. Для того, чтобы начать совместную работу с документом, достаточно в документе Microsoft Excel перейти в меню « Рецензирование » — « Доступ к книге » и выбрать « Разрешить изменять файл нескольким...
Abre o ficheiro com Excel? Então abre o ficheiro de forma monopolística. Tem de permitir que outras aplicações/utilizadores modifiquem o ficheiro algures nas definições.
Boa tarde a todos!
Não sei se estou a escrever no fio certo, mas espero que me possam corrigir. E mais uma coisa para esclarecer - sou um zero total na programação!
Assim, encontrei um código de um pequeno programa escrito em PYTHON que pega numa citação do par EUR/USD de um site conhecido e escreve-o na célula A1 do ficheiro EUR_USD_QUOTE.csv.
Se alguém não se importar, por favor melhore este código para que uma cotação seja automaticamente actualizada na mesma célula A1 do ficheiro EUR_USD_QUOTE.csv de hora a hora.
Atenciosamente, Vladimir.
Boa tarde a todos!
Não sei se estou a escrever no fio certo, mas espero que me possam corrigir. E mais uma coisa para esclarecer - sou um zero total na programação!
Assim, encontrei um código de um pequeno programa escrito em PYTHON que pega numa citação do par EUR/USD de um site conhecido e escreve-o na célula A1 do ficheiro EUR_USD_QUOTE.csv.
Se alguém não se importar, por favor melhore este código para que uma cotação seja automaticamente actualizada na mesma célula A1 do ficheiro EUR_USD_QUOTE.csv de hora a hora.
Atenciosamente, Vladimir.
Lancei o código finalizado no ambiente de desenvolvimento PyCharm, mas ainda nada acontece, apenas o botão "Rerun" está activado. Ainda não consigo compreender - o código funciona ou não?
Existe também informação adicional apresentada no separador "Problemas":
Maxim, pode fazer temporariamente a citação na actualização do ficheiro agora pelo menos em 1 minuto para compreender se o código está a funcionar ou não, caso contrário tenho de esperar uma hora inteira...?
Só mais uma coisa. Depois de ter lançado o código inicial que tinha publicado anteriormente, o ficheiro EUR_USD_QUOTE.csv foi imediatamente aberto com a citação actual, enquanto que o código modificado não pode abrir este ficheiro.
Talvez eu esteja a fazer algo errado ou não compreendo alguma coisa? Por favor, aconselhem-me.
Cumprimentos, Vladimir.
Obrigado, Maxim!
Executei o código finalizado no ambiente de desenvolvimento PyCharm, mas ainda nada acontece, apenas o botão "Rerun" está activado. Ainda não consigo entender - o código funciona ou não?
Existe também informação adicional apresentada no separador "Problemas":
Maxim, pode fazer uma citação temporária na actualização do ficheiro agora, pelo menos em 1 minuto, para compreender se o código está a funcionar ou não, tenho de esperar uma hora inteira...?
Só mais uma coisa. Depois de ter lançado o código inicial que tinha publicado anteriormente, o ficheiro EUR_USD_QUOTE.csv foi imediatamente aberto com a citação actual, enquanto que o código modificado não pode abrir este ficheiro.
Talvez eu esteja a fazer algo errado ou não compreendo alguma coisa? Por favor, aconselhem-me.
Cumprimentos, Vladimir.
1º 2 erros - basta mover isto para o topo do ficheiro
Isto é apenas um aviso de estilo de programação, não um erro
Para uma verificação rápida, substitua ambos os campos
para
segundo
o ficheiro deve ser escrito de 10 em 10 segundos porque o temporizador de verificação está definido para 10 segundos.
P.S. Apenas não se entusiasme demasiado ou será banido por pedidos demasiado frequentes.
entre parênteses não tenho nenhum erro
Este código espera até à hora seguinte e depois só salva
Não tenho estes módulos instalados
por isso ainda não verificou
Maxim, alterei o vosso código um pouco pelo método "experiência científica" (por favor desculpem-me antes) e foi possível abrir o ficheiro EUR_USD_QUOTE.csv com a citação actual em 1 minuto após o lançamento.
Mas se eu não fechar o ficheiro EUR_USD_QUOTE.csv durante o próximo minuto, recebo esta mensagem:
Traceback (última chamada):
Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 36, em <module>
get_data(save_file='EUR_USD_QUOTE.csv')
Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 21, em get_data
com open(save_file, 'w') as save:
PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
Processo terminado com o código de saída 1
Como posso fazer com que o processo continue sem intervenção humana depois de o código do programa ter sido executado?
Cumprimentos, Vladimir.
Maxim, alterei o vosso código um pouco pelo método "experiência científica" (por favor desculpem-me antes) e foi possível abrir o ficheiro EUR_USD_QUOTE.csv com a citação actual em 1 minuto após o lançamento.
Mas se eu não fechar o ficheiro EUR_USD_QUOTE.csv durante o próximo minuto, recebo esta mensagem:
Traceback (última chamada):
Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 36, em <module>
get_data(save_file='EUR_USD_QUOTE.csv')
Ficheiro "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py", linha 21, em get_data
com open(save_file, 'w') as save:
PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
Processo terminado com o código de saída 1
Como posso fazer com que o processo continue sem intervenção humana depois de o código do programa ter sido executado?
Cumprimentos, Vladimir.
ah sim, porque o processo está ocupado os.startfile() por alguma razão, apague esta linha
и
pode ser removido
Verificou-o, funciona.
e sim, porque o processo está ocupado os.startfile() por alguma razão, apague essa linha
и
pode ser apagado.
Verificou-o, funciona.
Maxim, fez tudo como aconselhou. Não foram relatados mais problemas. O programa começou, mas agora como posso ver a citação se o ficheiro EUR_USD_QUOTE.csv está fechado e quando o abro e deixo aberto recebo a mesma mensagem que PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv' e a citação no ficheiro aberto já não está actualizada?
Mais uma vez, peço desculpa, nunca escondi que sou um zero total na programação.
Cumprimentos, Vladimir.
Maxim, eu fiz tudo como aconselhou. Não há mais mensagens sobre problemas. Agora como posso ver a citação se o ficheiro EUR_USD_QUOTE.csv está fechado e quando o abro e o deixo aberto, recebo a mesma mensagem que PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv' e a citação no ficheiro aberto já não está actualizada?
Peço desculpa mais uma vez, nunca escondi que sou um zero total na programação.
Cumprimentos, Vladimir.
Abre o ficheiro com Excel? Significa que abre o ficheiro de forma monopolística. Tem de permitir que outras aplicações/utilizadores modifiquem o ficheiro.
Talvez http://blog.depit.ru/odnovremennaya-rabota-v-excel/ ajude.
Em geral, não se pode modificar um ficheiro aberto noutro programa.
Abre o ficheiro com Excel? Então abre o ficheiro de forma monopolística. Tem de permitir que outras aplicações/utilizadores modifiquem o ficheiro algures nas definições.
Talvez http://blog.depit.ru/odnovremennaya-rabota-v-excel/ ajude.
Não se pode modificar um ficheiro aberto noutro programa.
Sim, eu abro-o em Excel. Ainda não posso actualizar a cotação no ficheiro aberto EUR_USD_QUOTE.csv em tempo real.
Foi a ideia de olhar para a tabela e ver as alterações na citação.
Cumprimentos, Vladimir.