Lösung mit mehreren threads:
Code: Alles auswählen
import requests
import concurrent.futures
output1 = "global"
output2 = "global2"
output3 = "global3"
output4 = "global4"
output5 = "global5"
output6 = "global6"
output7 = "global7"
output8 = "global8"
def task1():
response1 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=BTC&FiatCode=EUR&CoinAmount=1')
global output1
output1 = response1
task1()
def task2():
response2 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=ETH&FiatCode=EUR&CoinAmount=1')
global output2
output2 = response2
task2()
def task3():
response3 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=XRP&FiatCode=EUR&CoinAmount=1')
global output3
output3 = response3
task3()
def task4():
response4 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=BCH&FiatCode=EUR&CoinAmount=1')
global output4
output4 = response4
task4()
def task5():
response5 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=LTC&FiatCode=EUR&CoinAmount=1')
global output5
output5 = response5
task5()
def task6():
response6 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=EOS&FiatCode=EUR&CoinAmount=1')
global output6
output6 = response6
task6()
def task7():
response7 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=XLM&FiatCode=EUR&CoinAmount=1')
global output7
output7 = response7
task7()
def task8():
response8 = requests.get('https://anycoindirect.eu/api/public/buyprices?CoinCode=ADA&FiatCode=EUR&CoinAmount=1')
global output8
output8 = response8
task8()
def main():
executor = concurrent.futures.ThreadPoolExecutor(max_workers=9)
run1 = executor.submit(task1())
run2 = executor.submit(task2())
run3 = executor.submit(task3())
run4 = executor.submit(task4())
run5 = executor.submit(task5())
run6 = executor.submit(task6())
run7 = executor.submit(task7())
run8 = executor.submit(task8())
print(output1.text)
print(output2.text)
print(output3.text)
print(output4.text)
print(output5.text)
print(output6.text)
print(output7.text)
print(output8.text)
if __name__ == '__main__':
main()
Lösung mit asyncio:
Code: Alles auswählen
import aiohttp
import asyncio
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
list = [
'https://anycoindirect.eu/api/public/buyprices?CoinCode=BTC&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=ETH&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=XRP&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=BCH&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=LTC&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=EOS&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=XLM&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=ADA&FiatCode=EUR&CoinAmount=1',
'https://anycoindirect.eu/api/public/buyprices?CoinCode=XMR&FiatCode=EUR&CoinAmount=1',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-BTC&type=sell',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-ETH&type=sell',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-XRP&type=sell',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-BCH&type=sell',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-LTC&type=sell',
'https://bittrex.com/api/v1.1/public/getorderbook?market=USD-ADA&type=sell',
'https://api.bithumb.com/public/orderbook/BTC',
'https://api.bithumb.com/public/orderbook/ETH',
'https://api.bithumb.com/public/orderbook/XRP',
'https://api.bithumb.com/public/orderbook/BCH',
'https://api.bithumb.com/public/orderbook/LTC',
'https://api.bithumb.com/public/orderbook/EOS',
'https://api.bithumb.com/public/orderbook/XLM',
'https://api.bithumb.com/public/orderbook/ADA',
'https://api.bithumb.com/public/orderbook/XMR'
]
for counter in range(len(list)):
html = await fetch(session, list[counter])
print(html)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())