Подозреваю, что в новой версии приложения используется другой метод API, так как не могу получить информацию по некоторых чеках, но через приложения все работает.
nirvimel: Огромное спасибо за ответ.
Расскажите еще про Cython пожалуйста. Что если переписать код на Cython? Или еще критические участки кода на С++? Хотелось бы такой же ответ со ссылками на материалы которые помогут погрузиться глубже в эту тему. Спасибо.
nirvimel: Постараюсь описать задачу, которую я решаю. На вход задание поступают ключевые фразы. Для каждой фразы делается запрос в поисковые системы для получение списка сайтов. Для каждого сайта из полученного списка делается парсинг и разбивка на блоки (body, a, readability text). В каждом блоке текста ищутся возможные фразы со списка ключевых слов и их корней.
Сейчас скрипт выполняется линейно. Использую requests, BeautifulSoup 4 для парсинга, pymorphy, ntlk для работы со словами.
Весь поиск сделан с использованием стандартных строковых функций, конструкций типу if item in list и циклов.
Над оптимизацией алгоритма поиска работа видеться регулярно.
Первое что приходит в голову - обрабатывать каждый сайт (получение содержимого, парсинг, поиск фраз) в отдельном потоке (библиотека multiprocessing). Остальные идеи по ускорению хотелось бы получить здесь.
Хорошо, раз материал может быть уже устарелым, тогда поделитесь пожалуйста актуальной информацией по данной теме (можно и на английском).
Я читал про многопоточность, Cython, PyPy, написание расширений на С. Но хочеться до конца разобраться в этих вопросах так как стоит передо мной реальна задача и нужно принимать решение.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Подозреваю, что в новой версии приложения используется другой метод API, так как не могу получить информацию по некоторых чеках, но через приложения все работает.
Можете ли Вы исследовать новую версию приложения?