Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Python + Программист

С этим тегом используют

Программирование IT Обучение IT юмор Разработка YouTube Юмор Картинка с текстом Работа Все
676 постов сначала свежее
3
Page.notfound
Page.notfound
1 год назад
Программирование на python

Задания для подготовки к собесу. Разбираем реализацию алгоритма двоичного поиска на Python, повторяем циклы и списки⁠⁠

Всем привет) на тему двоичного поиска написано множество статей и гайдов, но в этой статье постараюсь подойти к задаче с позиции новичка и расписать максимально просто процесс решения этой задачи на языке программирования Python.

Инструкция к статье: Пожалуйста, если вы программист из Google, Билл Гейтс или Илон Маск, а также страдаете мегаломанией просьба не читать статью, в первых трех случаях она не принесет вам ничего нового, а в четвертом случае это не совсем удачный способ повышения ЧСВ)). Рассматриваются базовые конструкции, приведенный код тут не является "истиной в последней инстанции" как говорится Cujusvis hominis est errare. Поэтому если есть вариант решения пишите в комментарии! Буду рад комментариям от более опытных программистов, обычно их плюсую, спасибо Вам!)) закончим второй частью высказывания - nullius nisi insipientis in errore perseverare.

Рассмотрим кратко что и себя представляет двоичный поиск и зачем он нужен?

Двоичный поиск позволяет повысить производительность кода по сравнению с линейным кодом так как каждый элемент не перебирается а перебираются части списка где бы мог бы быть элемент. Стоит добавить что алгоритм подходит для отсортированного массива данных.

Какие знания используются для решения?

В процессе решения этой задачи применим знания в области циклов и списков.

(Небольшое отступление: https://t.me/python_scrypt - телеграмм канал по Python, задачи и вопросы с собесов а также обзор популярных библиотек и куча полезной инфы)

Приступим к решению задачи, договоримся что отступы в коде буду обозначать как " > > "

Будем разбирать на примере списка чисел от 1 до 10. Давайте попросим пользователя ввести массив чисел:

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

Этот код принимает строку символов, которую вводит пользователь, разделяет ее на отдельные числа с помощью метода split(), и затем с помощью map () применяет функцию int() к каждому элементу, чтобы преобразовать его в соответствующее целое число. После этого все эти числа помещаются в список listx.

Так как есть вероятность что пользователь введет неотсортированный список, а мы помним что нам нужен отсортированный список то выполним сортировку) как раз вспомним как ее сделать.

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

listx.sort() # выполняем сортировку

Далее, создаем копию списка (списки - изменяемый объект) и попросим пользователя ввести элемент который будем искать в списке.

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

listx.sort() # выполняем сортировку

list = listx # создаем копию списка
b = int(input("Элемент: ")) # просим пользователя ввести значение для поиска

Дальше запускаем цикл, который будет выполняться пока значение длины списка больше либо равно 1

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

listx.sort() # выполняем сортировку

list = listx # создаем копию списка
b = int(input("Элемент: ")) # просим пользователя ввести значение для поиска

while len(list)>=1: # len - получение длины списка list

В теле цикла пропишем 3 условия:

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

listx.sort() # выполняем сортировку

list = listx # создаем копию списка
b = int(input("Элемент: ")) # просим пользователя ввести значение для поиска

while len(list)>=1: # len - получение длины списка list
> > if b == list[(len(list)//2)]:
> > > > print("Найдено:", list[len(list) // 2], "индекс:", listx.index(list[len(list) // 2])) # если найден
> > > > > >break # прекращение работы цикла
> > elif b < list[(len(list)//2)]: # делим список на 2 части
> > > > >list = list[:(len(list)//2)] # рассматриваем левую часть
> > else:
> > > >list = list[(len(list)//2):len(list)] # рассматриваем правую часть

Цикл находит медиану элемента в списке list. Он делает это путем разделения списка на две части, сравнивая элемент b с элементом в середине списка (если список имеет четное количество элементов, он использует среднее значение двух средних элементов). Затем он рекурсивно вызывает себя, если элемент меньше найденной медианы, он обрабатывает только первую половину списка, иначе он обрабатывает вторую половину списка. В конце он выводит медиану и ее индекс в списке.

Теперь представим что значения которое ввел пользователь нет в списке, выведем об этом сообщение. Это можно реализовать путем добавления конструкции else после выполнения цикла (если ни одно из условий в цикле не выполняется то срабатывает конструкция else).

listx = list(map(int, input().split())) # ввод списка чисел списка чисел 1 2 3 4 5 6 7 8 9 10

listx.sort() # выполняем сортировку

list = listx # создаем копию списка
b = int(input("Элемент: ")) # просим пользователя ввести значение для поиска

while len(list)>=1: # len - получение длины списка list
> > if b == list[(len(list)//2)]:
> > > > print("Найдено:", list[len(list) // 2], "индекс:", listx.index(list[len(list) // 2])) # если найден
> > > > > >break # прекращение работы цикла
> > elif b < list[(len(list)//2)]: # делим список на 2 части
> > > > >list = list[:(len(list)//2)] # рассматриваем левую часть
> > else:
> > > >list = list[(len(list)//2):len(list)] # рассматриваем правую часть
else:

> > print("Не найдено") # сработает если в цикле не найдено ни одного значения

Все! готово! ниже прикреплю картинку кода.

Задания для подготовки к собесу. Разбираем реализацию алгоритма двоичного поиска на Python, повторяем циклы и списки Python, Программирование, IT, Программист, Длиннопост

Также можете посмотреть код в онлайн интерпретаторе - тык

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)

Показать полностью 1
[моё] Python Программирование IT Программист Длиннопост
4
6
Lifehack
Lifehack
1 год назад
Life-Hack [Жизнь-Взлом]/Хакинг

Получение закладок из chromium-based браузеров с помощью Python⁠⁠

Почти все браузеры, основанные на chromium, хранят закладки похожим образом. Меняются только директории, в которые эти браузеры установлены. Исключением является только Mozilla Firefox. При этом закладки хранятся в открытом виде, так что, любой желающий может получить к ним доступ. Не сказать, чтобы это была супер секретная информация. Но все же, стоило бы продумать этот момент. В данной статье мы рассмотрим код, который в автоматизированном режиме получает все закладки из распространенных браузеров с помощью Python.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Мы в телеграме!

Поиск установленных браузеров

Создадим файл browser_check.py. В нем, напишем код, который будет производить поиск браузеров по пути указанному в одном из словарей.

Импортируем необходимые библиотеки для работы скрипта и определим список, в который будем помещать словари с найденными браузерами:

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Следующим шагом будет создание двух словарей, в которые поместим пути к распространенным браузерам на операционных системах Windows и Linux, так как поиск браузеров будет производиться по путям, которые специфичны для каждой из операционных систем.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Создадим функцию browser_find(platform: dict) -> None, которая на входе будет получать словарь с путями к закладкам браузеров и проверять их существование. Если путь существует, в объявленный ранее список browser будет добавляться словарь с названием браузера и путем к его закладкам.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Следует обратить внимание на тот факт, что пути к закладкам браузеров указаны при установке их в директории по умолчанию. Если же пользователь поменял расположение директории с браузером, то он найден не будет.

Двигаемся далее и создадим функцию main, в которой будем определять платформу, на которой запущен скрипт. В принципе, если у вас MacOS, то нужно добавить еще один словарь с путями и условие, в котором определяется ваша система. Но, в данном случае детектируются только две операционные системы: Windows и Linux.

В зависимости от того, какая из систем установлена на компьютере с запущенным скриптом, забираем нужный словарь с путями к закладкам и передаем его в функцию browser_find, которую напишем в отдельном файле.

После этого проверяем, есть ли что-то в списке с браузерами. Если список пуст, выводим сообщение для пользователя, что браузеры не найдены. Если же список не пуст, итерируемся по нему в цикле, забираем словари и получаем название браузера, которое содержится в переменной key и путь к закладкам, содержащийся в переменной value.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Передаем полученное значение в функцию по парсингу json. На самом деле, файл с закладками, это json-файл с достаточно большой структурой вложенности.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Часть структуры файла закладок

В зависимости от того, что вернет функция парсинга, а возвращает она или список со словарями, в которых содержаться полученные значения или False, двигаемся дальше. Если мы получаем список, то открываем файл с названием браузера на запись. Обратите внимание на то, что в данном случае файл открыт в режиме дозаписи, о чем свидетельствует параметр «a». Затем итерируемся по полученному списку, забираем из словарейОбратите внимание на ветку «roots», в которой и находятся все закладки. Так как закладки в браузере, это не просто последовательный набор названий и ссылок, то их группировка происходит по директориям создаваемым пользователем. Данные директории имеют название «children» и имеют тип «folder». Также, к примеру, на Панели закладок могут быть как директории с закладками, так и просто закладки для быстрого доступа. Тип закладок без папок «url».

Создадим файл bookmarks_find.py и приступим к написанию кода. Для начала импортируем библиотеки, которые понадобятся в данном скрипте.

import json

Создадим функцию rec(file: str) -> (list, bool), в которую передается путь к закладкам браузера. Возвращает же данная функция список со словарями, в которых содержится имя и url закладки. В случае же, если закладки найти не удалось, возвращается False.

Объявляем список urls, в который будем помещать найденные закладки в виде словарей. Откроем файл с закладками для чтения, поместим его содержимое в переменную roots.

Так как значение данной переменной будет являться словарем, проитерируемся по нему в цикле, указав ветку «roots» в качестве стартовой. Получим ключ и значение и проверим, есть ли в нем название «children». Если да, передаем полученную ветку в функцию process_tree, которую мы создадим чуть позже для обработки. Также передаем в эту функцию список urls. По сути, при передаче списка, если вспомнить его свойства, мы передаем указатель на оригинальный список, так как его копирования в данном случае не происходит. А значит, при его изменении в других функциях измениться и оригинальный словарь.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

После того, как завершим итерацию по файлу, проверяем, пуст или нет список. Если список не пуст, возвращаем его из функции. Если пуст - возвращаем False.

Теперь создадим функцию process_tree(children_ist: dict, urls: list) -> None, которая получает на входе словарь из полученной директории и указатель на список, в котором будут храниться найденные ссылки в виде словарей.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Здесь все просто. Данная функция как переходник, в котором мы итерируемся по полученному словарю и передаем полученные значения в следующие функции для обработки.

Создадим функцию process_urls(item: dict, urls: list) -> None, которая на входе получает словарь со значениями и ссылку на список. У данной функции предназначение – выявить ссылки в переданном словаре. Для этого проверяем, есть ли в переданном словаре ключ «type» и является ли его значение «url». Если да, забираем название ссылки и саму ссылку и добавляем в виде словаря в список urls.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

И еще одна функция, которая будет необходима для проверки, не является ли полученный словарь директорией со ссылками «children». Создадим функцию process_folders(item: dict, urls: list) -> None, которая на входе получает словарь со значениями и ссылку на список.

Здесь все тоже просто, проверяем, есть или нет «children» в переданном словаре. Если есть, передаем его рекурсивно в функцию process_tree для дальнейшей обработки.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Полный код скрипта:

import json

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

На этом вроде бы все. Основные скрипты и функции написаны, осталось только проверить, как это будет работать.

Открываем терминал и запускаем скрипт:

Если у вас Windows:

python browser_check.py

Если Linux:

python3 browser_check.py

В процессе работы скрипт выведет несколько сообщений: о том, сколько было найдено браузеров, для какого из браузеров найдены закладки и для какого количества из найденных закладки сохранены.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Сообщения в терминале

Если скрипт найдет браузеры в системе, в директории скрипта будут созданы файлы с названиями найденных браузеров, в которых содержатся закладки.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Файлы с найденными закладками

Как видно на скриншоте, у меня установлено два браузера. Давайте откроем один из файлов и посмотрим на часть его содержимого.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Содержимое файла с найденными закладками

Как видим, закладки найдены. За годы работы в данном браузере их накопилось чуть более 3000. Конечно же, показывать все я не буду, потому, только самое начало, для того, чтобы убедиться, что скрипт работает.

Скрипт работает как на Windows, так и на Linux. Вот скрин с работой скрипта в Fedora Workstation, в которой браузеры установлены по умолчанию, с помощью пакетов.

Получение закладок из chromium-based браузеров с помощью Python IT, Код, Python, Программирование, Программист, Linux, Windows, Длиннопост

Работа скрипта в Fedora Workstation

Подведем итоги:

В данной статье мы научились рекурсивно парсить файл json, узнали, каким способом можно определить операционную систему, установленную на компьютере, а также сохранять данные из json в текстовый файл.

В перспективе, применений данному скрипту можно найти достаточно много. Все зависит только от вашей фантазии.

А на этом все. Спасибо за внимание.

Скрипты можно взять тут!

Наш канал по программированию, полезные статьи, бесплатные курсы, все в одном канале!
Подпишись!

Показать полностью 15
[моё] IT Код Python Программирование Программист Linux Windows Длиннопост
1
55
tproger.official
tproger.official
1 год назад
Типичный программист

У разных языков разное отношение к указателям:⁠⁠

У разных языков разное отношение к указателям: IT, IT юмор, Программирование, Картинка с текстом, Программист, Указатель, Python, C++, Аватар, Мемы
Показать полностью 1
[моё] IT IT юмор Программирование Картинка с текстом Программист Указатель Python C++ Аватар Мемы
11
5
Wowovideo
Wowovideo
1 год назад
ITmozg

Шпаргалка по Git⁠⁠

git init - Инициализировать новый Git-репозиторий.

git clone - Клонировать удаленный репозиторий на вашу локальную машину.

git status - Проверить текущее состояние рабочей директории.

git add - Постановка изменений для следующей фиксации.

git commit - Записать внесенные изменения и создать снимок.

git push - загрузить локальные изменения в удаленный репозиторий.

git pull - Получение и объединение изменений из удаленного репозитория.

git branch - список, создание или удаление веток.

git checkout / git switch - переключение между ветками или коммитами.

git merge - Интеграция изменений из одной ветки в другую.

git diff - просмотр различий между рабочим каталогом и областью хранения.

git log - отображение хронологического списка коммитов.

источник https://t.me/itmozg/9679

Программирование Программист IT Linux Технологии Python Windows Программа Сайт Github Git Шпаргалка Видео Без звука Вертикальное видео Telegram (ссылка)
4
0
TheFounder
TheFounder
1 год назад

Этика в сфере ИИ или новые вызовы человечеству в XXI веке⁠⁠

Этика в сфере ИИ или новые вызовы человечеству в XXI веке IT, Программирование, Проект, Карьера, Программист, Python, Разработка, Тестирование, Профессия, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Тема этики — одна из самых спорных тем в принципе.

Мы не стали акцентировать внимание на популярных проблемах, связанных с deepfake, безопасностью данных или использованием ИИ преступниками и хакерами. Вместо этого мы решили затронуть перспективы развития искусственного интеллекта.

Как научить морали сильный искусственный интеллект?

Как избежать использования человека как средства?

Как сделать ИИ безопасным (и использовать его в военных целях)?

Все эти вопросы так или иначе уже стоят или будут стоять перед разработчиками и государствами в течение следующих несколько лет. Мы специально не ориентировались на техническую часть вопроса, сколько максимально сущностную (фундаментальную) — ведь в ней и скрывается вектор решения.

Сильный искусственный интеллект и Super AI: новый человек или сверхмашина?

AGI или artificial general (общий) intellegence — интеллект, очень похожий на человека, владеющий всеми человеческими интеллектуальными навыками и обладающий соответственно автономией.

И это не говоря уже о Super AI, которое бы превосходило человеческие возможности (речь, например о «Демоне Лапласа», способного вычислить все положения частиц во вселенной и предсказать будущее утрированно). Такое ИИ способно гипотетически решать сложнейшие задачи в перспективе малого количества времени, в том числе и обхода собственного контроля. 

Уже на протяжении 50-ти лет с появлением первых компьютеров на машинном коде, ученые/философы начали активное обсуждение вообще фундаментального устройства человеческого мозга и возможности его воссоздания на уровне машины.

В общем и целом, сегодня существуют три доминирующих мировоззрения в этом вопросе: материализм/физикализм (сознание = физ. процессы), функционализм (сознание как результат вычислительных процессов), эмерджентизм (сознание как побочное свойство действия нейронов).

И в самом деле, все сводится к: можно ли свести мозг к математическим абстракциям, логическим выражениям и вообще бинарным структурам, чтобы воспроизвести через нейронные сети?

Но в самом деле, для самой этики это не столь важно. Ведь если понимать AGI как сильный искусственный интеллект широкого назначения и автономии, то достаточно попросту наличия хоть какой-то автономии.

Существует такой популярный эксперимент «Китайская комната», который постулирует: любой алгоритм, обладая набором инструкций (те же распределенные веса связи слов в моделях LLM) может имитировать «понимание» вопросов.

В представленной ситуации воображаемой Китайской комнаты человек, не знающий китайского языка, находится внутри и обрабатывает входящие китайские символы согласно инструкциям, так же на китайском. Несмотря на способность обработки символов и генерации ответов, человек в комнате фактически не понимает языка, который он использует для взаимодействия с внешним миром.

И поэтому мы никогда не сможем по речевому поведению усмотреть ментальный, обязательный феномен человеческого сознания как «понимание» или «осмысление».

Самый пока что прямолинейный подход в воссоздании человеческого интеллекта наблюдается в методе «Emergence», на нем основан, кстати, проект OpenAI, показывающий впечатляющие результаты.

То же самое можно сказать о недавно запущенном суперкомпьютере, о котором мы писали в одном из постов. Впрочем, такой подход действительно показывает некоторые результаты: например, набор «нейронов» может генерировать подобие когнитивных карт ориентации в пространстве.

Но в самом деле такой подход вообще не контролируем, ведь он никак не регулируется и зависит, скорее, от скармливаемых данных. Хотя на это и делаются ставки. Вместо того чтобы архитектурно стремиться разработке AGI, создаются условия для его возникновения.

В контексте нейронных сетей, подход «emergent» означает, что сложные характеристики или поведенческие особенности модели возникают автоматически в процессе обучения, без явного задания конкретных правил или шаблонов. Это взаимодействие нейронов и слоев сети ведет к формированию эмерджентных свойств, которые могут быть неочевидными при анализе отдельных компонентов.

Этика в сфере ИИ или новые вызовы человечеству в XXI веке IT, Программирование, Проект, Карьера, Программист, Python, Разработка, Тестирование, Профессия, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Множество объектов формирует некоторое “свойство” физического тела. Так, например, молекулы воды формируют волны. А с точки зрения некоторых ученых и философов, сетка нейронов мозга – сознание и когнитивные способности человека. 

Вместо того чтобы программировать нейронные сети на выполнение конкретных задач, при использовании подхода «emergent» сеть обучается на данных и адаптируется к условиям задачи. Например, в обучении с подкреплением, где агент взаимодействует с окружающей средой, эмерджентные свойства могут включать в себя развитие стратегий, которые агент самостоятельно вырабатывает в процессе взаимодействия со средой, оптимизируя свою производительность.

Такой подход также может быть связан с использованием нейросетей с большим числом слоев и параметров, где обучение происходит на более высоких уровнях абстракции. Это позволяет модели выявлять сложные закономерности в данных и создавать эмерджентные структуры, которые позволяют эффективно решать поставленные задачи.

Именно поэтому Ник Бостром и Элиэзер Юдковски приводят доводы в пользу деревьев решений (таких, как ID3) против нейронных сетей и генетических алгоритмов, потому что деревья решений подчиняются современным социальным нормам прозрачности и предсказуемости.

Сегодня не существует понимания механизмов формирования абстрактных мировоззрений, убеждений, мотивов и морали в мозгу. А значит предсказаний момента их возникновения при симуляции нейронной сетей мозга быть не может.

Поэтому в точке перехода к AGI, когда возможно возникновение эмерденентных («случайно возникающих») феноменов по типу морали, мы никак не сможем контролировать их содержание.

И в этом и состоит ключевая проблема этики Сильного искусственного интеллекта — нет средств и инструментов, чтобы вшить инструкции, предписания или гуманные мотивации.

Но в самом деле, проблема здесь лежит еще глубже: нечего предписывать. Ибо любое этическое предписание уже предполагает выбора одних ценностей перед другими.

Допустим, практически любое общечеловеческое благо или благо отдельной группы людей зачастую противоречит благу частного лица. Поэтому принципиальный выбор между тем или иным =  обязательный ущерб одному из субъектов будь то целый социальный класс или отдельный средний человек.

Нет абсолютно благих принципов этики, как и нет четкой и понятной этической системы, которая могла бы хоть как-то понизить шансы возникновения «неморального» сильного ИИ.  И ни говорили некоторые, что отсутствие эмоций у искусственного интеллекта – определенный плюс. Возможно, эмпатичность и распознание человека как «своего» формирует почву для возникновения около-гуманных ценностей.

Этика в сфере ИИ или новые вызовы человечеству в XXI веке IT, Программирование, Проект, Карьера, Программист, Python, Разработка, Тестирование, Профессия, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Хотя печальным примером проявления эмоций может послужить ИИ-ассистент из Космической Одиссеи Кубрика, саботирующий работу пилота корабля. 

В этом смысле у GAI две проблемы: в силу популярности «emergence» подхода, направленного на непредсказуемый результат — сама непредсказуемость и невозможность на философском уровне выработки этических правил делает сильный ИИ опасным. С другой стороны, неморальный и гнусный GAI — это не проблема, ведь по своему функционалу он не должен превосходить человека.

Но что насчет Супер искусственного интеллекта, которого так боится Элиезер Юдковский? Проблема в том, что возникновение SAI вероятнее, нежели возникновение GAI, так как оно независимо от человеческих способностей и ориентировано концептуально больше на решение сложных задач (вычислительных).

Этика в сфере ИИ или новые вызовы человечеству в XXI веке IT, Программирование, Проект, Карьера, Программист, Python, Разработка, Тестирование, Профессия, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Примером осмысления синтеза GAI и SAI становится Альт Каннигем, обладающая невероятными «интеллектуальными» способностями и странной антропоморфностью. Мистичность такого создания подчеркивается еще и тем, что сам конструкт обладает непонятной мотивацией.

И так как, опять концептуально, оно является производной Narrow AI (узкоспециализированного искусственного интеллекта), то предполагает предписанную задачу и цель. А возникновение предписанной цели предполагает выборку средств, причем с наличием автономии. И вот автономия может расположить искусственный интеллект, например, к использованию человека как «средства».

Естественно, такая проблема должна решаться моральными предписаниями и готовой «гуманной» мотивацией ИИ. Но здесь мы просим вас вернуться к нескольким абзацам выше.

Narrow AI: слабый искусственный интеллект в военных целях

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

На самом деле, проблема ИИ в военном секторе не строится по принципу: а вдруг искусственный интеллект уничтожит союзника. Эта проблема решаема, ведь отвечает вполне понимаемым задачам холодного расчета.

Страны активно разрабатывают и внедряют военные технологии на базе искусственного интеллекта в попытке укрепить свое военное превосходство. Это создает геополитическую напряженность и может привести к гонке вооружений в сфере искусственного интеллекта, а значит и к увеличению смертоносности и беспрекословности оружия.

Этика в сфере ИИ или новые вызовы человечеству в XXI веке IT, Программирование, Проект, Карьера, Программист, Python, Разработка, Тестирование, Профессия, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Гонка вооружений в области ИИ может привести к созданию высокоэффективных и автономных систем, что, в свою очередь, повышает риск ошибок, аварий и даже потенциальных кибератак.

К сожалению, практика ведения войн показывает, что международные конвенции нарушаются, а разработка ядерной бомбы, например, образовала новую эпоху в политической жизни всего мира.

С другой стороны, развитие ИИ в военной сфере может привести к невозможности любого вооруженного конфликта либо делегированию вооруженных столкновений беспилотникам. Как ядерная бомба запретила любые войны на уничтожение наций и государств, так и ИИ может запретить «войны», так как будет предполагать автоматическое поражение.

Но войны между равными странами, обладающими искусственным интеллектом в своем вооружении. А что насчет конфликтов между странами третьего мира и высокоразвитыми государствами? Главное отличие ядерного оружия — сдерживающий фактор в крупных войнах (т.к. атомная бомба обладает слепой разрушительной силой). Искусственный интеллект, способный распознавать цели и уничтожать их в частном порядке, дает значительное преимущество на поле боя и не создает эффекта разрушительности.

Подобная ситуация может стать опасной и привести к порабощению или явному политическому давлению со стороны высокоразвитых стран вплоть до экономического паразитизма. Впоследствии развития ИИ в военном секторе может привести к образованию новых военных союзов и коалиций.

Почему перед разработчиками стоят серьезные этические вызовы, которые нужно решать сегодня?

Этика в военных вопросах использования ИИ стоит уже не первый год. Так, например, беспилотники без проблем уничтожали террористические группировки, практически не давая никакого шанса на выживание. Тем более, ООН уже фиксировали уничтожение террористов без использования человека-оператора.

Если говорить об GAI и SAI — здесь вопросы упираются в разработку грамотного этического кодекса и способа контроля «emergent»-подхода, который может привести к необратимым последствиям вплоть до самораспространения нейросети или выбора человека как средства.

И это лишь малая часть этических проблем, которые стоят перед разработчиками ИИ. Не зря последнее время мы слышим много новостей, связанных с этой темой как со стороны крупных корпораций по типу Google и OpenAI, так и государств.

Но, а напоследок советуем посмотреть одно из видео Bostons Dynamics

https://www.youtube.com/watch?v=y3RIHnK0_NE&amp;ab_channel=C...

Если вам было интересно прочитать эту статью (да и в целом интересна сфера айти и всё, что с ней связано), подписывайтесь на наш телеграм-канал. У нас только самые яркие новости из мира айти, куча полезной инфы (бесплатно и без регистрации :D), обзоры на ИИ-стартапы и мемы, конечно, куда ж без них :)

Показать полностью 4
IT Программирование Проект Карьера Программист Python Разработка Тестирование Профессия Длиннопост Telegram (ссылка) YouTube (ссылка)
0
22
Lifehack
Lifehack
1 год назад
Life-Hack [Жизнь-Взлом]/Хакинг

Простой способ извлечения изображений из документов MS и Libre Office⁠⁠

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Стандарт Open Document стал де-факто уже давно. И если раньше формат документов Microsoft Office был проприетарным, то теперь он представляет собой «.zip»-файл в котором храниться множество «.xml», а также изображения и прочие файлы. Конечно же, самым простым способом извлечь документы является изменение расширения документа на «.zip» и последующее извлечение файлов любым архиватором. Но, если вам нужно сделать это не с одним документом, это может быть достаточно продолжительно по времени. Поэтому, давайте рассмотрим несколько способов, с помощью которых можно извлечь изображения из файлов формата ".docx", ".xlsx", ".pptx", ".odp", ".ods", ".odt".

Способ №1: используем стандартные библиотеки python

Для данного способа не требуется установка сторонних библиотек. Достаточно тех, что поставляются в комплекте с самим интерпретатором.

Создадим файл extract.py.

Импортируем нужные нам в процессе работы библиотеки:

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Создадим функцию image_extract(in_zip: zipfile, out_dir: Path), в которую будем передавать zip-файл, а также путь к директории в которую будут распакованы изображения. В данном случае путь у пользователя запрашиваться не будет.

Объявим переменную cnt, которая будет счетчиком распакованных изображений. Затем в цикле пробежимся по списку содержимого архива. Проверим расширения файлов в архиве. И если они совпадают с расширениями из списка, будем читать текущий файл с изображением и сохранять в байтовом режиме в директорию, которая передается в функцию. Также, данная директория создается автоматически и называется именем исходного документа. После того, как все изображения будут сохранены, возвращаем из функции наш счетчик.

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Осталось дело за малым, запросить у пользователя путь к файлу, проверить, является ли он файлом и имеет ли нужный формат. После чего скопировать файл с расширением «.zip», открыть с помощью zipfile и передать в функцию для поиска изображений и их распаковки. Ну и напоследок удалить скопированный zip-файл.

После окончания извлечения изображений вывести сообщение пользователю о том, сколько файлов было извлечено и в какую директорию.

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Полный код скрипта:

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Протестируем созданный скрипт. У нас есть, для примера документ «CustomTkinter.docx». В нем содержаться несколько изображений. Вот их мы и попробуем извлечь.

Запускаем скрипт, указываем путь к документу и получаем папку с названием документа, в которой содержаться изображения.

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Способ №2: используем библиотеку docx2txt

Создадим файл docx2im.py. В данном случае мы будем использовать стороннюю библиотеку docx2txt. Для ее установки пишем в терминале или командной строке:

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Теперь импортируем нужные библиотеки в скрипт.

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

В данном случае нам не понадобиться создавать дополнительных функций. Сделаем все в одной. Хотя, в теории, можно было бы разделить извлечение изображений и текста. Да, дополнительным бонусом, при том, что извлекаются изображения только из документов «.docx», является извлечение текста.

Для начала запросим у пользователя путь к документу и путь к папке для извлечения изображений. Проверим, является ли переданный параметр путем к документу и является ли расширение данного документа «.docx». Затем проверим, существует ли директория для извлечения изображений. Если нет, создадим ее, так как docx2txt ее самостоятельно не создает.

Теперь передаем путь к документу и путь для извлечения изображений в функцию process данной библиотеки. Из нее будет возвращен текст документа. Проверим, содержится ли в переменной text что-нибудь. Для этого обрежем пробелы и знаки переноса каретки, так как, если в документе нет текста, но есть пустая строка, переменна text не будет пуста.

Затем открываем текстовый документ на запись и записываем в него полученный текст.

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Этот способ достаточно простой, но, как вы уже поняли, извлекать изображения из других форматов документов он не умеет.

Думаю, что вышеприведенных скриптов будет достаточно. Можно использовать также библиотеку aspose-words, которая устанавливается с помощью команды:

pip install aspose-words

Однако, способ извлечения с ее помощью изображений не особо отличается от предыдущих. Создадим файл aspose_extract.py. Вот для примера код:

Простой способ извлечения изображений из документов MS и Libre Office IT, Гайд, Программирование, Разработка, Windows, Python, Рекомендации, Код, Программист, Длиннопост

Выбирать, что использовать вам и в каком виде, конечно же, вам. Здесь описаны только несколько способов, с помощью которых можно проделать данную операцию. Скорее всего, если поискать более тщательно, найдется еще множество библиотек, с помощью которых можно извлечь изображения из документов.

А на этом все. Спасибо за внимание.

Надеюсь, данная информация будет вам полезна.

Код из статьи можно взять тут!

Показать полностью 9
[моё] IT Гайд Программирование Разработка Windows Python Рекомендации Код Программист Длиннопост
2
14
MachineLearningg
1 год назад

35 бесплатных курсов и книг Python 2024 года⁠⁠

Python является одним из самых популярных языков программирования в мире. Он широко используется в различных сферах, таких как веб-разработка, научные исследования, анализ данных, машинное обучение и многое другое. Изучение Python позволит вам получить полезные навыки и открыть для себя множество возможностей в карьере.

Множество полезных бесплатных курсов и книг делает обучение Python доступным для всех. Вы можете изучать этот замечательньй язык программирования в своем собственном темпе и без необходимости тратить деньги на платные курсы.

Если у вас есть достаточная мотивация и самодисциплина, вы можете самостоятельно изучить Python без покупки платных курсов.

В конечном итоге, выбор между бесплатными и платными курсами зависит от ваших личных предпочтений, доступности ресурсов и вашей мотивации.

35 бесплатных курсов и книг Python 2024 года Python, Обучение, Программист, IT, Образование, Питон, Длиннопост, Telegram (ссылка), YouTube (ссылка)

Главное – поставить цели и следовать им, независимо от выбранного способа обучения. В статье я собрал большой список курсов, книг, репозиториев и каналах о Python, которые охватывают множество тем от основ языка до создания ИИ и машинного обучения на Python🐍.

> Harvard’s popular CS50 series has an intro to Python course

Платформа: youtube

В популярной гарвардской серии курсов CS50 есть курс “Введение в Python”, который ведет сам Дэвид Джей Малан.

В курсе рассматриваются основы Python, такие как циклы и условия, а также написание и использование API.

Попутно вы создадите приложение с использованием таких фреймворков, как Django и React.

🐍 Курс

> Инди-курс программирования на Python

Платформа: stepik

Данный курс является сборником обучающих видео с Ютуб канала Артема Егорова, в курсе присутствуют 91видеоурок и множество задач для самопроверки. Он подойдет как новичкам, так и программистам знакомым с основами языка Python.

🐍 Курс

> Питонтьютор

Платформа: pythontutor

Питонтьютор — бесплатный курс по программированию с нуля, работающий прямо в браузере. Этот бесплатный курс идеально подойдёт новичкам, в том числе не знающим английский — ошибки, которых не избежать новичку, здесь объясняются на русском языке. И вам не надо запоминать кучу теории — практика поможет без труда закрепить теоретические знания.

🐍 Курс

> MITx: Introduction to Computer Science and Programming Using Python

Платформа: edx

Бесплатный курc от MIT, одного из самых лучших университетов мира: Введение в информатику и программирование на Python.

🐍 Курс

> Укус Питона – A Byte of Python по-русски

Платформа: Github

A Byte of Python – это бесплатная книга по программированию на языке Python. Она может служить учебным пособием или руководством по языку Python для начинающей аудитории. Если ваши знания о компьютере ограничиваются тем, как сохранять текстовые файлы, эта книга для вас.

🐍 Книга

> Папка с полезными каналами

Платформа: Telegram

Здесь я собрал большую папку полезных телеграм каналов о Python для разработчиков. Здесь есть каналы для всех уровней от новичков до опытных программистов.

🐍 Папка

> Use Scrapy for Web Scraping in Python

Платформа: youtube

В этом курсе вы узнаете все об вебсрейпинге и создадите свой первый проект с Scrapy.

🐍 Курс

> Введение в Python

Платформа: Hexlet

Теоретическая информация по синтаксису, типам коллекций, функциям, операторам и юникоду с проверкой пройденного материала после каждой лекции. Для каждого урока доступно видео с текстовой базой (основные моменты теории и код).

🐍 Курс

> IBM Free course: Python Basics for Data Science

Платформа: edx

Этот бесплатный курс от IBM по Python представляет собой понятное для начинающих введение в Python для Data Science.

🐍 Курс

> Обучающие материалы по питону (roadmap) 🐍

Платформа: Github

Большое количество полезных, бесплатных материалов по Python, курсы, лекции, книги, настоящий клад питониста.

🐍 Курс

> Regular Expressions in Python: Free course

Платформа: learpythonorg

Бесплатный интерактивный курс по  регулярным выражениям на Python.

🐍 Курс

> “Поколение Python”: курс для продвинутых

Платформа: Stepik

Курс является продолжением “Поколение Python: курс для начинающих”. Он знакомит с дополнительными возможностями языка Python, в учебный материал входят двумерные массивы, кортежи, множества, словари, модули, функции и многое другое. Курс рекомендуется проходить после ‘курса для начинающих’ или если вы уже знакомы с основными концепциями языка Python.

🐍 Курс

> Ускоренный курс Python от Google (только субтитры)

Платформа: Coursera

В курс входит 39 часов лекций на Английском языке (доступны русские субтитры). Материал подойдет для начинающих разработчиков не написавших ни одной строки кода. Во время обучения научитесь использовать основные структуры Python: строки, списки и словари.

🐍 Курс

> Программирование на Python (От института биоинформатики)

Платформа: Stepik

Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.

🐍 Курс

> Курс программирования на языке Python в РТУ МИРЭА

Платформа: Github

Курс РТУ МИРЭА, нацеленный на изучение языка программирования Python. В нём вы сможете начать с изучения основ языка и придти к ООП и автоматизации тестирования. Он может оказаться очень полезным, так как нацелен на студентов, изучающих программирование (Python, в частности).

🐍 Курс

> Python: основы и применение (От института биоинформатики)

Платформа: Stepik

Курс посвящен базовым принципам языка Python и программирования в целом. Он хорошо подойдет тем, кто уже может писать простейшие программы на Python или тем, кто до этого программировал на других языках. 5 часов 30 минут контента, которые познакомят вас с базой программирования на Python.

🐍 Курс

> Основы Python

Платформа: Stepik

Курс поможет овладеть основным синтаксисом и принципами языка. Для этого не потребуется специальной подготовки. Кроме основных конструкций в учебнике рассмотрены разные подходы к программированию, реализованные на Python. А в последней главе вы прикоснётесь к главной суперсиле языка — большому количеству прикладных библиотек.

🐍 Курс

> Программирование для всех (начало работы с Python)

Платформа: Coursera

От CourseraБесплатный курс от Мичиганского университета на платформе Coursera предлагает участником набор онлайн-лекций по базовым навыкам владения языком Python. Каждый поток длится 7 недель, в рамках которых профессор Чарльз Северанс преподносит знания из своей книги “Python for Everybody”.

🐍 Курс

> Ключевые аспекты разработки на Python

Платформа: Hexlet

На этом курсе вы изучите ключевые аспекты разработки на Python. Вы узнаете больше о коллекциях, вводе/выводе данных, протоколе HTTP и написании тестов. В итоге вы познакомитесь с различными типами коллекций, с работой с файлами и сетевыми запросами. Знания из этого курса пригодятся, если вы решите заняться разработкой на Python. Этот курс подойдет начинающим программистам, которые хотят улучшить свои знания в Python. Чтобы учиться было проще, стоит заранее изучить основы языка Python.

🐍 Курс

> Python программирование / Уроки для начинающих

Платформа: YouTube

Вы научитесь программировать на языке Python. Здесь мы обсудим все моменты программирования на этом языке, начиная от простых переменных и заканчивая созданием классов.

🐍 Курс

> Python для начинающих» от Code Basics

Платформа: Code Basics

Этот объемный курс посвящен азам написания программ на Python. Он готовит плацдарм для написания осмысленных программ. 69 уроков. Практические задания рассчитаны на 24 часа.

🐍 Курс

>  Язык программирования PYTHON для начинающих

Платформа: youtube

Большой видео курс на русском языке, в котором 81 урок.

🐍 Курс

> Уроки Django

Платформа: itProger

На курсе вы научитесь создавать простейшие сайты и веб-приложения на фреймворке Django, работать с базами данных, изучите все основные положения фреймворка Django, а также создадите Python сайт.

🐍 Курс

> Искусственный интеллект с Python – полный университетский курс

Платформа: youtube

Этот курс Гарвардского университета исследует концепции и алгоритмы, лежащие в основе современного искусственного интеллекта, погружаясь в идеи, которые привели к появлению таких технологий, как большие языковые модели, игровые движки, распознавание рукописного текста и машинный перевод. В ходе создания практических проектов вы познакомитесь с теорией алгоритмов поиска графов, классификации, оптимизации, обучения с подкреплением и другими темами в области искусственного интеллекта и машинного обучения.

🐍 Курс

> Бесплатные книги по Python

Платформа: Github

Книги по Python читать онлайн или скачать бесплатно.

🐍 Книги

> Машинное обучение с Python

Платформа: edx

Темы, которые вы изучеите в этом курсе от MIT:

  • Принципы решения задач ML

  • Создание и работа с мл моделями

  • Выбор подходящих моделей для различных задач машинного обучения

  • Реализация ML-проектов: Обучение моделей, валидация, настройка и разработка мл приложений.

🐍 Курс

> Ru python beginners

Платформа: Github

Русскоязычный краудсорсинговый проект помощи начинающим python разработчикам.

🐍 Курс

> Awesome Python

Платформа: edx

Огромный кураторский список полезных фреймворков, библиотек, программного обеспечения и ресурсов на языке Python.

🐍 Курс

📹 Полезные ютуб каналы о Python.

Uproger – разбор задач с собеседований Python , телеграм боты, парсинг, асинхронность и много всего полезногодля Python разработчиков.

Django School – здесь вы получите навыки программирования на Python (раз, два) и соберете социальную сеть на Джанго.

PythonToday – авторский блог Максима Плачковского, куча проектов для практики во временя изучения программирования.

Олег Молчанов – автор в спокойной манере, очень понятно рассказывает ра Python, множество полезных тем:  основы python, асинхронность, работа с Джанго и Flask и автоматизация задач и многое другое.

Тимофей Хирьянов – знаменитый преподаватель кафедры информатики МФТИ, который учит, как программировать на Python и знакомит слушателей с алгоритмами.

Диджитализируй! – автор доступно и понятно рассказывает о Python, Linux, проектировании и многом другом

ZProger [ IT ] – кодинг на практике, много интересных проектов и фишек языка.

Заключение

Надеемся, что представленные в этой статье курсы и ресурсы окажутся полезными для всех начинающих разработчиков, желающих освоить Python.

Просьба всех делиться информацией о других курсах и ресурсах, которые стоит добавить в эту статью.

Спасибо за внимание и удачи в изучении Python!

Показать полностью 1
Python Обучение Программист IT Образование Питон Длиннопост Telegram (ссылка) YouTube (ссылка)
0
3
Lifehack
Lifehack
1 год назад
Life-Hack [Жизнь-Взлом]/Хакинг

Получаем ip-адрес из requests (python)⁠⁠

Когда мы получаем какую-либо информацию о домене, в числе прочих параметров мы узнаем его ip-адрес. И получить его с помощью python не составляет большого труда. Однако давайте рассмотрим, как, не используя прямое обращение к сокету получить ip-адрес непосредственно из запроса.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Зачастую, чтобы получить ip-адрес мы используем socket. И в случае, когда нам требуется выполнение только данной операции этого вполне достаточно.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Но можно поступить несколько иначе, особенно если мы уже получаем какие-либо данные с сервера. Хотя бы те же заголовки. Давайте на примере посмотрим, как реализовать получение доступа к необработанному объекту сокета.

Установка необходимых библиотек

В данном случае нам понадобиться библиотека requests. Для ее установки пишем в терминале:

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Импорт библиотек в скрипт. Создание заголовков для запроса

После того, как установлены необходимые библиотеки, нам их нужно импортировать в скрипт. В данном случае, так как мы установили библиотеку requests, импортируем ее.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

После этого создадим словарь с заголовками содержащими «User-Agent» и «Accept». Их мы будем передавать в запрос в качестве параметра, чтобы изменить стандартные заголовки отправляемые python.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Получаем заголовки и ip-адрес

Создадим функцию get_domain_info(domain: str) -> (dict, bool), которая на входе будет получать домен, а возвращать заголовки отправленные сервером, а также ip-адрес домена.
Выполним запрос на получение заголовков, куда передадим адрес домена, заголовки. Укажем свойство allow_redirects = True. Это сделано для того, чтобы производилась переадресация. То есть, в данном случае мы делаем следующее: так как мы не знаем точного адреса сайта, доменное имя которого передано в функцию, поступим как браузер. Для начала пойдем по протоколу http. Если на сервере включена переадресация, то мы будем автоматически переадресованы на нужный адрес. Также, stream=True. Это необходимо для получения ip-адреса из запроса.

Обработаем исключение raise_for_status(), чтобы отсекать ненужные статус-коды. В случае же, когда код 200, получим ip и порт, которые возвращаются в кортеже при выполнении следующего кода: res.raw._connection.sock.getpeername(). Важно то, что эти данные необходимо получить в самом начале, до обработки остальных данных запроса, то есть в первую очередь. И уже после получим частично содержимое из заголовков отправленных сервером. Вернем пользователю словарь из полученных данных. В случае же неудачи или неверного статус-кода, вернем из функции False.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Ну и создадим функцию main, где и будем запрашивать у пользователя домен, отправлять его в функцию для получения информации и выводить на печать полученные в виде словаря данные.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Здесь я не проверяю полученную информацию, так как данный код служит примером. Если вы попробуете получить ip-адрес с помощью socket, результат, зачастую, будет одинаковым. Однако, если вы увидите, что адреса различаются, то не считайте это ошибкой. Я проверял специально данные, получая информацию от DNS. Тут дело в том, что на одном домене может быть несколько NS-серверов. И в этом случае возвращается значение ближайшего. Ну или свободного. В данном случае механизм для меня пока еще не совсем понятен. Главное, что и тот, и тот адреса являются правильными.

Полный код скрипта

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост
Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Протестируем написанный код и получим заголовки и ip-адрес для домена python.org.

Получаем ip-адрес из requests (python) Python, IT, Программист, Разработка, Разработчики, Программирование, Рекомендации, Гайд, Домен, Код, Длиннопост

Результат работы скрипта

Как видим, скрипт отработал правильно и вернул ip-адрес, а также информацию из полученных заголовков.

А на этом, пожалуй, все.

Спасибо за внимание. Надеюсь, данная информация будет вам полезна!

Подписывайся на наши телеграм каналы! У нас много полезного!

Код скрипта можно забрать тут!

Показать полностью 9
[моё] Python IT Программист Разработка Разработчики Программирование Рекомендации Гайд Домен Код Длиннопост
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии