Данный учебник является введением в язык программирования Excel VBA (Visual Basic for Applications). Изучив VBA, Вы сможете создавать макросы и выполнять в Excel практически любые задачи. Вы очень...
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):
os.system("TASKKILL /F /IM excel.exe")
get_data(save_file='EUR_USD_QUOTE.csv')
t2 = t
time.sleep(10)
是的,我在Excel中打开它。到目前为止,不可能实时更新开放的EUR_USD_QUOTE.csv文件中的报价。
这是看表的想法,看看报价如何变化。
真诚的,弗拉基米尔。
所以,这与Python或Exel没有关系。该文件被打开,数据被导入Exel。你必须在其中编写程序,使用内置的VBA。
你不需要Python程序,使用VBA更容易。我没怎么用过它,但我相信它可以做GET。
所以它与Python或Exel没有关系。你打开文件,数据被读入Exel,仅此而已。然后你必须使用嵌入式VBA 在其中写一个程序
你不需要Python程序,使用VBA更容易。我没怎么用过它,但我相信它可以做GET。
你好,Alexey!
是否不可能在PYTHON中写一个程序代码,使EUR_USD_QUOTE.csv文件被关闭并立即以新的报价重新打开?
我对VBA还不了解,但谢谢你的提示。
问候,弗拉基米尔。
你用Excel打开文件? 所以它是垄断性地打开文件。你必须允许其他应用程序/用户在设置中的某个地方修改该文件。
也许http://blog.depit.ru/odnovremennaya-rabota-v-excel/,会有帮助。
一般来说,你不能修改一个在另一个应用程序中打开的文件。
马克西姆,要使EUR_USD_QUOTE.csv文件先打开,就像在源代码中实现的那样,然后在一定时间间隔后,在最终确定的程序代码影响下关闭一秒钟,并立即再次打开,但有新的报价,这有多难?以此类推,无穷无尽...
问候,弗拉基米尔。
马克西姆,让EUR_USD_QUOTE.csv文件先按源代码中的实现打开,在一定时间间隔后,在最终确定的程序代码影响下,关闭一秒钟,然后再次打开,但要有新的报价,这有多难?以此类推,无穷无尽...
问候,弗拉基米尔。
试试这个
所以Python和Exel都与此无关。你打开文件,Exel中的数据被计算出来,就这样。然后有必要在它的内置VBA 上编写一个程序。
如果是这样,就不需要Python上的程序了,在VBA中一次完成所有的事情更容易。我没怎么和他一起工作,但我相信他可以做GET。
你甚至不需要VBA。你所要做的就是最初使用excel。我准备用英语写说明...创建一个新的工作簿。点击 "数据标签">"获取数据">"来自其他来源">"来自网络",然后在 "网址 "字段中粘贴网页地址。接下来点击刷新所有其他选项>连接属性,并配置为每隔N分钟自动更新。
马克西姆,让EUR_USD_QUOTE.csv文件先打开,就像它在源代码中实现的那样,在某个时间间隔的影响下,修改后的代码第二次关闭并立即重新打开,但有新的报价,这有多难?就这样一直到无限大...
尊敬的弗拉基米尔。
如果你打开excel窗口,该文件将被excel锁定,无法写入。你将需要添加逻辑来说明锁定的文件。另外,你为什么要在网上搜刮报价?你为什么不使用MetaTrader来收集报价?这是不可能的。
试试这个。
谢谢你,马克西姆!
我已经在尝试了。循环已经开始,但文件还没有打开。我将让这个循环处于运行状态并等待。
问候,弗拉基米尔。
P.S. Pardon!一下子没注意到,那是值得一小时 的。我把它改成了一分钟 EUR_USD_QUOTE.csv文件被打开,但我 在Pycharm 的运行标签中得到了这样的信息。
� � � � 㤠���� ����� "excel.exe"。
然后又过了一分钟左右,文件关闭又重新打开,但在Exel中,电子表格的左侧出现了一个标签,要求我保存之前打开的文本。我又等了一会儿,想看看接下来会发生什么,但后来循环停止了,出现了这样的信息。
����� "excel.exe", � �����䨪� 4208, � ����� 襭赶。
����� "excel.exe", � �����䨪� 3168, � ����� 襭赶。
回溯(最近一次调用):
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/9.py", line 37, in <module>
get_data(save_file='EUR_USD_QUOTE.csv')
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/9.py", line 23, in get_data
with open(save_file, 'w') as save:
PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
这就是目前的结果,但我已经取得了进展!"。
问候,弗拉基米尔。
如果你打开excel窗口,该文件将被excel锁定,无法写入。你将需要添加逻辑来说明锁定的文件。另外,你为什么要在网上搜刮报价?你为什么不使用MetaTrader来收集报价?这是不可能的。
如果你把Excel窗口打开,该文件将被锁定以写入Excel。你将需要添加逻辑来说明锁定的文件。另外,你为什么要在网上寻找报价?你为什么不使用MetaTrader来收集报价?这没有任何意义。(来自我个人的:对不起, nicholish en, 我不会说英语,所以我用谷歌翻译)
我想学习如何 使用Python语言 从互联网上获取报价 ,这样我就可以不在终端中查看,而是在一些文件中查看,例如csv 。我以为这是一项初级任务,但事实证明并非如此。也许我走错了路,但一无所求的人就一无所获。
现在让我们继续讨论你建议的代码。我 在Pycharm 中启动代码后,看到了以下信息。
Traceback (most recent call last):
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/10.py", line 25, in <module>
main()
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/10.py",第13行,in main
eurusd_bid = soup.find('td', 'pid-1-bid').text.replace(', ', '. ')
AttributeError: 'NoneType' object has no attribute 'text'
Process finished with exit code 1
我应该改变什么来看看代码是如何工作的?
我的敬意,弗拉基米尔。
关于交易、自动交易系统和交易策略测试的论坛
MetaTrader 5 Python 用户组 - 如何在 Metatrader 中使用 Python
布鲁克林先生, 2020.08.19 22:05
谢谢你,马克西姆!
已经在试了。循环正在运行,但文件还没有打开。我将让这个循环处于运行状态并等待。
问候,弗拉基米尔。
P.S. Pardon!没有一下子注意到什么是站小时。我把它改成了一分钟 EUR_USD_QUOTE.csv文件被打开,但我 在Pycharm 的运行标签中得到了这样的信息。
� � � 㤠���� ����� "excel.exe"。
然后又过了一分钟左右,文件关闭又重新打开,但在Exel中,电子表格的左侧出现了一个标签,要求我保存之前打开的文本。我又等了一会儿,想看看接下来会发生什么,但后来循环停止了,出现了这样的信息。
����� "excel.exe", � �����䨪� 4208, � ����� 襭赶。
����� "excel.exe", � �����䨪� 3168, � ����� 襭赶。
回溯(最近一次调用):
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/9.py", line 37, in <module>
get_data(save_file='EUR_USD_QUOTE.csv')
File "C:/Users/Vladimir/PycharmProjects/My_Python_Project/9.py", line 23, in get_data
with open(save_file, 'w') as save:
PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE.csv'
这就是目前的结果,但我已经取得了进展!"。
真诚的,弗拉基米尔。
马克西姆,我不知道发生了什么,但我又试了一下你的代码,哦,我的天啊!我的天啊!我的天啊循环过程已经开始,但有一个注意点。和以前一样,在Excel的左侧出现了一个标签,要求我保存文件,但这并不是什么大问题。附上一张截图。我等着六个周期过去,退出了这个项目。现在,我将研究每一行代码,并试图理解我所写的内容以及它的目的是什么。非常感谢您!
真诚的,弗拉基米尔。
P.S. 一个想法出现了,为什么左手边出现一个标签,建议保存文件。只是编程代码关闭了文件而没有保存,这可能就是Exel提供并将继续提供保存文件的原因。
阅读中文传呼机。做了很多思考...
这就是我关于整合Python 和MQL的观点。两种语言都很接近,但MQL很简单,而Python很原始,像BASIC。每个用MQL编程的人都可以轻松地在Python中创建一些东西,反之亦然。对这个主题的兴趣是什么?首先,这是为非常懒惰的人准备的。好吧,用非常相似的语言写点东西...兴趣可能在于两个部分:库(Python中有许多库)和接口(MQL对此很有名)。那么,为什么不把从Python到MQL接口的访问和从MQL到Python库的访问结合起来?就这样了。