Найти - Пользователи
Полная версия: Многопоточность, POST запрос и другие шалости
Начало » Python для новичков » Многопоточность, POST запрос и другие шалости
1 2
xoholuhi
Здравствуйте.
Крайне необходима Ваша помощь в написании следующего кода под Линукс.

Многопоточный скрипт, который из файла queries.txt берет строку (line) и отправляет POST запрос по адресу domain.com. Затем анализирует полученный ответ. Если URL ответ содержит
строку abc, тогда в файл a.txt;
строку qwerty, тогда в файл q.txt;
в противном случае отправляем в z.txt.
Причем запись в файл необходимо делать посредством добавления в список в главном потоке. (Хотя может быть у Вас будет другое решение).
Основная задача - оптимизация по скорости работы.
Параметры POST запроса
1. Data: q=line
2. Поддержка Cookies
3. Поддержка followlocation
4. Добавить Header (“Auth: Site.com”);


Заранее огромнейшее человеческое Мерси за Ваше время и помощь!
Slow
Что именно из описанного не получается?
xoholuhi
Да всё)
Я еще слишком “новичек” в питоне.
FishHook
xoholuhi
Да всё)
Я еще слишком “новичек” в питоне.
И вы хотите, чтобы за вас сденлали “всё”? На том основании, что вы новичок?
xoholuhi
FishHook
И вы хотите, чтобы за вас сденлали “всё”? На том основании, что вы новичок?

Главное, чтоб сделали. Насчет оснований всегда можно договориться. Мы же все-таки люди ;-)
FishHook
xoholuhi
Насчет оснований всегда можно договориться.
Ваши предложения?
xoholuhi
FishHook
Ваши предложения?
Говорю ж полный “новичек” в питоне.
Насколько сложно судить Вам, мэтрам.
Поэтому интересно насколько реально это по времени и по затратам. Предлагаю все нюансы обсудить в ЛС, если удобно.
papuas
это не трудно,
вот примерно так это делается, проверять некогда пишу с мобилы.
навряд ли вам многопоточность нужна.

 import grequests
prepared_query = bla_bla.txt
file_save = oLo_Lo.txt
def read_txt(file):
    query = []
    for line in file:
        query.append(grequests.post(cookies = 'my_cookies', data = line, headers = 'my_headers'))
    return query
def async(query):
    response = grequests.map(query, gtimeout=8)
    for i, resp in enumerate(response):
        if 'abc' in resp:
            with open(file_save, 'w') as f:
                 my_string_to write = '{}'.format(resp)
                 f.write(my_string_to write)





xoholuhi
papuas
это не трудно, вот примерно так это делается, проверять некогда пишу с мобилы.навряд ли вам многопоточность нужна.
Честно сказать многопоточность очень нужна, поэтому и решил задачу решать на питоне. Кроме этого нюанс с тем, чтоб потока “не ждали” освобождение файла для записи и предложил, как вариант воспользоваться списком в главном потоке и затем запись в файл. (Прочёл это в интернете). Возможно, у Вас будут более оптимизированные решения.

Если возможно - покажите, пожалуйста, на данном примере многопоточность.
И в ЛС отправьте сразу кошелек киви для пополнения баланса мобильного)

Спасибо за всё!
Nicke_grodno
Многопоточности в питоне нету
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB