2015-06-24 1 views
0

Ссылка на последнюю версию TWS: here.Как открыть интерактивные брокеры TWS из Python

Когда я открыл ссылку в Firefox при просмотре «сети» трафик (Ctrl + Shift + Q), казалось, чтобы показать запрос GET к

https://www.interactivebrokers.com/java/classes/latest.jnlp?counter=0.9639924327729598 

(счетчик устанавливается на случайное число) , Тем не менее, следующий код возвращает HTML-страницу; а не «latest.jnlp» Файл:

import requests 
import random 

url = 'https://www.interactivebrokers.com/java/classes/latest.jnlp?counter=' + str(random.random()) 
r = requests.get(url, stream=True) 
print r.content 

Как загрузить фактический latest.jnlp файл и сохранить его?

ответ

1

Эти две функции ниже иллюстрируют два различных способа загрузки файла:

import random 
import urllib 
import urllib2 

url = 'https://www.interactivebrokers.com/java/classes/latest.jnlp?counter=' + str(random.random()) 

def download_file_1(url): 
    urllib.urlretrieve(url + ".jnlp", "latest.jnlp") 

def download_file_2(url): 
    jnlpfile = urllib2.urlopen(url + ".jnlp") 
    output = open('test.jnlp','wb') 
    output.write(jnlpfile.read()) 
    output.close() 

Calling обе эти функции приводит к тому же результату: файл просто загружается и сохраняется в текущей рабочей директории с именами для файл, указанный как «latest.jnlp» и «test.jnlp». Поскольку вы не указали, что необходимо использовать библиотеку запросов, я решил использовать urllib и urllib2.

Надеюсь, это то, что вы искали!

+0

Я не понял, что .jnlp-файл похож на веб-страницу HTML. Он работает сейчас! Обратите внимание на всех, кто просматривал: мне было трудно получить файл jnlp для запуска в Windows 7 через Python. По-видимому, права UAC не позволяют этого и нет сообщения об ошибке. В качестве обходного пути я создал файл open.bat (вручную), содержащий строку 'javaws latest.jnlp'. – ChaimG

+0

Рад слышать, что проблема решена и что код работает! Иногда решение обманчиво просто! –

Смежные вопросы