import re def parse_curl_request(file_path): with open(file_path, 'r', encoding='utf-8') as file: curl_request = file.read() return curl_request.replace('\\ ', '') def extract_headers_cookies_params(curl_request): headers = {} cookies = {} params = {} headers_pattern = re.compile(r"-H '(.*?)'") cookie_pattern = re.compile(r"cookie: (.*?)(?=\s-H|$)", re.DOTALL) url_pattern = re.compile(r"curl '(.*?)'") header_matches = headers_pattern.findall(curl_request) cookie_match = cookie_pattern.search(curl_request) url_match = url_pattern.search(curl_request) if cookie_match: raw_cookies = cookie_match.group(1) for cookie in raw_cookies.split('; '): if '=' in cookie: key, value = cookie.split('=', 1) cookies[key] = value if url_match: url = url_match.group(1) if '?' in url: url, query_string = url.split('?', 1) for param in query_string.split('&'): key, value = param.split('=', 1) params[key] = value for header in header_matches: key, value = header.split(': ', 1) if key.lower() != 'cookie': # Пропустить заголовок куки headers[key] = value return headers, cookies, params def write_to_file(headers, cookies, params, output_file): with open(output_file, 'w', encoding='utf-8') as file: file.write('headers = { ') for key, value in headers.items(): file.write(f" '{key}': '{value}', ") file.write('} ') file.write('cookies = { ') cookie_items = [f" '{key}': '{value}'" for key, value in cookies.items()] file.write(', '.join(cookie_items)) file.write(' } ') if params: file.write(' params = { ') param_items = [f" '{key}': '{value}'" for key, value in params.items()] file.write(', '.join(param_items)) file.write(' } ') # Удаляем последнюю лишнюю кавычку в cookies и params with open(output_file, 'r+', encoding='utf-8') as f: content = f.read() content = re.sub(r"'\s*'\s*}", "' }", content) f.seek(0) f.write(content) f.truncate() # Основной процесс curl_request = parse_curl_request('curl_request.txt') headers, cookies, params = extract_headers_cookies_params(curl_request) write_to_file(headers, cookies, params, 'output.py') +++++++++++++++++++++++++++++++++++++++++++++++ создайте файл 'curl_request.txt', скопируйте туда cURL (bash), запустите код, на выходе получите питоновский output.py, результаты такие же, как на сайте по конвертации.
Столкнулся с проблемой, что Chromium требует manifest версии 3, вторая версия действительно считается устаревшей. Может кто-нибудь переделать расширение с прокси под третью версию?
Пишу из 2024 когда seleniumwire ни хрена не работает)))) Пришлось воспользоваться подсказками и сделать расширения для аутентификации прокси из JS и JSON все это засунуть в zip и добавить `chrome_options.add_extension('путь к zip')` и о магия proxy с аутентификацией взлетел.
Код непонятный немного, зачем нужен find_more_element на 7:09 если мы уже прописываем условие driver.find_elements??? Знаю что селениум обновился и методы поменялись, но вот конкретно по функционалу этих методов непонятно
Хорошая работа! Предположу, что дополнительные баллы можно было ещё получить за: 1 - оформление проекта (readme + gitignore + license + описание проекта для загрузчиков) 2 - использование линтеров (по нарушенному PEP8 порядку импортов уже видно, что не применялись) 3 - вынос тестов в отдельную папку, щас получается сам себя протестировал и удалил часть работы 4 - улучшить оформление функции: например, добавить докстринг, начать имя с глагола, добавить типизацию, переделать IF на GUARD BLOCK - так её будет легче читать и понимать как она работает 5 - заменить принты на логгер 6 - заменить работу с input на парсинг аргументов из командной строки 7 - применить работу с ошибками: if ...: raise ... или try: ... except ...: ...
Очень интересно смотреть видео на канале. Помимо самого парсинга, можно позаимствовать прочие фишки работы с пайтон. Для новичка маст хев. Кроме прочего, подача материала достаточно качественно по контент, звуку, скорости рассказа спикера!
Не опробовал эту библиотеку, но скорее всего, она просто вшивает строку с текстом в изображение. Если попробуешь открыть картинку через какой нибудь текстовый редактор(например vim или nano), то увидишь набор символов, и в одной из строк будет твоё сообщение, которое с лёгкостью можно будет удалить
Интересно было бы посмотреть пример полной автоматизации какого-нибудь приложения с использованием requests. Где скрипт будет проходить авторизацию, и выполнять какие-то действия.
Интересно, когда люди поймут, что полноценных нейронок пара штук всего создано, а всё остальное это просто приложения, что пересылают сообщения от оригинала (грубо говоря)