Какой ЯП лучше всего подойдёт для данной задачи?

Необходимо организовать массовую многопоточную (параллельную) загрузку большого количества относительно мелких (до 5мб) файлов по протоколу HTTP, а затем после загрузки каждого файла прочитать и распарсить ответ сервера (в общем случае HTML). Какие языки программирования лучше всего подходят под данную задачу? Пока склоняюсь в сторону Перла — может посоветуете что-то получше? Желательно аргументированно.
Заранее спасибо!
  • Вопрос задан
  • 3309 просмотров
Решения вопроса 2
@asd111
Python.
Вместо многопоточности можно использовать grequests - это библиотека requests на основе gevent т.е. non blocking I/O.
А если многопоточность то:
вот однопоточный пример.
import requests
filename='test_file'
f = open (filename)
r =  requests.post(url='http://upload.example.com', data =  {'title':'test_file},  files =  {'file':f})
print r.status_code
print r.headers

manual по библиотеке requests
docs.python-requests.org/en/latest/index.html

пример многопоточности

import threading
from random import randint
from time import sleep

def printNumber(number):
   # Sleeps a random 1 to 10 seconds
   sleep(randint(1,10))
   print str(number)

thread_list = []

for i in range(1,10):
   # Instatiates the thread
   # (i) does not make a sequence, so (i,)
   t = threading.Thread(target=printNumber, args=(i,))
   # Sticks the thread in a list so that it remains accessible 
   thread_list.append(t)

# Starts threads
for thread in thread_list:
   thread.start()

# This blocks the calling thread until the thread whose join() method is called is terminated.
# From http://docs.python.org/2/library/threading.html#thread-objects
for thread in thread_list:
   thread.join()

# Demonstrates that the main process waited for threads to complete
print "Done"
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
Erlang. С его помощью забъете весь канал на сервере.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
Любой язык, который знаешь достаточно хорошо для реализации этой задачи и который поддерживается используемым сервером. На загрузку файлов потратишь больше времени, чем на их парсинг любым из озвученных языков, так что выбирай из собственных знаний и удобства реализации.
Ответ написан
WebSpider
@WebSpider Автор вопроса
А что скажете насчёт GO?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы