Форум сайта python.su
Здравствуйте.
Крайне необходима Ваша помощь в написании следующего кода под Линукс.
Многопоточный скрипт, который из файла 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”);
Заранее огромнейшее человеческое Мерси за Ваше время и помощь!
Офлайн
Что именно из описанного не получается?
Офлайн
Да всё)
Я еще слишком “новичек” в питоне.
Офлайн
xoholuhiИ вы хотите, чтобы за вас сденлали “всё”? На том основании, что вы новичок?
Да всё)
Я еще слишком “новичек” в питоне.
Офлайн
FishHook
И вы хотите, чтобы за вас сденлали “всё”? На том основании, что вы новичок?
Офлайн
xoholuhiВаши предложения?
Насчет оснований всегда можно договориться.
Офлайн
FishHookГоворю ж полный “новичек” в питоне.
Ваши предложения?
Офлайн
это не трудно,
вот примерно так это делается, проверять некогда пишу с мобилы.
навряд ли вам многопоточность нужна.
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)
Отредактировано papuas (Янв. 24, 2018 20:23:09)
Офлайн
papuasЧестно сказать многопоточность очень нужна, поэтому и решил задачу решать на питоне. Кроме этого нюанс с тем, чтоб потока “не ждали” освобождение файла для записи и предложил, как вариант воспользоваться списком в главном потоке и затем запись в файл. (Прочёл это в интернете). Возможно, у Вас будут более оптимизированные решения.
это не трудно, вот примерно так это делается, проверять некогда пишу с мобилы.навряд ли вам многопоточность нужна.
Офлайн
Многопоточности в питоне нету
Офлайн