Меню

Блог о программировании на Python  

10 Jul 2025

В этой книге я подробно расскажу о разработке сигнатурного антивируса!  

4 Jul 2025

Парсинг данных

Всем привет и без лишних разговоров приступаем к работе.

Парсинг данных - это сбор данных с открытых источников, в нашем случае с web - страниц, и работать мы будем с wikipedia. Так, бежим в наш pycharm и устанавливаем библиотеки: 

  • requests — для отправки HTTP-запросов
  • BeautifulSoup — для парсинга HTML


Но перед тем как мы начнём, прошу вас обратить внимание на адресную строку яндекса, а точнее на адрес википедии: https://ru.wikipedia.org/wiki/Заглавная_страница

Так, теперь код, для начала спросим в интернета существует ли вообще эта страница: 

import requests
from bs4 import BeautifulSoup

# URL страницы Википедии
url = 'https://ru.wikipedia.org/wiki/Заглавная_страница'

# Отправляем GET-запрос
response = requests.get(url)


Ответ: 200, а значит она существует! Теперь парсинг данных:

import requests

from bs4 import BeautifulSoup


# URL страницы Википедии

url = 

'https://ru.wikipedia.org/wiki/Заглавная_страница'


# Отправляем GET-запрос

response = requests.get(url)


# Проверяем статус ответа

if response.status_code == 200:

    # Парсим HTML

    soup = BeautifulSoup(response.content, 'lxml')


    # Находим заголовок

    title = soup.find('h1', id='firstHeading').text

    print(f'Заголовок статьи: {title}')

else:

    print('Ошибка при получении страницы')


Вот ответка: заголовок статьи: Заглавная страница. А что если немного поменять запрос? Например на вот такой: 

'https://ru.wikipedia.org/wiki/python'

На этот раз получим: заголовок статьи: Python


А теперь извлечём основной текст: 

# Находим основной контент

content = soup.find('div', id='mw-content-text')


# Извлекаем все абзацы

paragraphs = content.find_all('p')


# Выводим первые 3 абзаца

for i, paragraph in enumerate(paragraphs[:3]):

    print(f'Абзац {i+1}:\n{paragraph.text}\n')


Можно также извлекать ссылки из статьи.  

# Находим все ссылки

links = content.find_all('a', href=True)


# Выводим первые 5 ссылок

for link in links[:5]:

    url = 'https://ru.wikipedia.org' + link['href']

    text = link.text

    print(f'Текст: {text} | Ссылка: {url}')



Полезные советы

  • Обрабатывайте ошибки. Используйте try-except для обработки возможных ошибок.
  • Соблюдайте правила. Ознакомьтесь с условиями использования Википедии.
  • Добавляйте заголовки. Используйте пользовательский агент в запросах: headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers)


Домашнее задание

Создайте скрипт, который:

  • Получает название статьи
  • Извлекает все изображения
  • Сохраняет текст в файл
  • Добавьте обработку ошибок
  • Попробуйте парсить другую статью


Дополнительные ресурсы


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

22 May 2025

Python для чайников: завариваем крепкий Python!

Хотите научиться программировать на Python, но боитесь змей и сложных терминов? Эта книга - для вас! Мы превратим изучение Python в увлекательное приключение, полное юмора и интересных открытий. Вы узнаете, как приручить Python-змею, создать своего Telegram-шпиона, написать калькулятор и даже научить Python танцевать!  


                                                          Читать!

4 Oct 2024

Циклы (Урок 13) 

Знакомьтесь, это циклы;)

Введение...

Циклы представляют собой одну из ключевых концепций программирования, позволяющую многократно повторять определённые операции. В Python существуют два основных типа циклов - `for` и `while`. Давайте рассмотрим каждый из них подробнее.


Цикл `for`...

Цикл `for` используется для итерации по элементам последовательности (списку, кортежу, строке и т.д.). Пример использования цикла `for`:

```python

for i in range(5):

    print(i)

```


Цикл `while`...

Цикл `while` выполняется до тех пор, пока условие истинно. Пример использования цикла `while`:

```python

i = 0

while i < 5:

    print(i)

    i += 1

```


Операторы управления циклами...

- Оператор `break` используется для выхода из цикла.

- Оператор `continue` позволяет пропустить текущую итерацию цикла и перейти к следующей.

- Оператор `pass` является пустым оператором, который позволяет пропустить блок кода.


Итерация по коллекциям...

С помощью цикла `for` можно легко перебирать элементы списков, кортежей, словарей и других коллекций. Пример итерации по словарю:

```python

my_dict = {'a': 1, 'b': 2, 'c': 3}

for key, value in my_dict.items():

    print(key, value)

```


Генераторы списков (List Comprehensions)...

Генераторы списков представляют собой компактный способ создания списков на основе каких-то операций или выражений. Пример генератора списка:

```python

squared_numbers = [x**2 for x in range(5)]

```


Заключение...

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

3 Oct 2024

Списки (Урок 12)

Я так давно ничего не писал в эту рубрику... Ну что, приступим?)

Списки в Python

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

## Создание списка

Для создания списка в Python мы используем квадратные скобки `[]` и разделяем элементы запятыми. Например:

```python

my_list = [1, 2, 3, 4, 5]

```

Также можно создать пустой список:

```python

empty_list = []

```

## Доступ к элементам списка

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

```python

print(my_list[0]) # Выводит 1

print(my_list[2]) # Выводит 3

```

## Добавление и удаление элементов

Мы можем добавлять элементы в список с помощью метода `append()`:

```python

my_list.append(6)

```

Чтобы удалить элемент по индексу, мы можем использовать оператор `del` или метод `pop()`:

```python

del my_list[0] # Удаляет первый элемент

removed_element = my_list.pop(2) # Удаляет и возвращает элемент по индексу 2

```

## Изменение элементов

Элементы списка можно изменять присваиванием нового значения по индексу:

```python

my_list[1] = 10

```

## Срезы списка

Мы можем получить подсписок списка, указав диапазон индексов (срез):

```python

sub_list = my_list[1:3] # Получает элементы с индексами от 1 до 3 (не включая 3)

```

## Итерация по списку

Мы можем итерироваться по всем элементам списка с помощью цикла `for`:

```python

for element in my_list:

    print(element)

```

## Работа со списками

Python предоставляет множество встроенных функций для работы со списками, таких как `len()`, `sort()`, `count()`, `index()`, `reverse()` и другие. Эти методы могут быть использованы для решения различных задач с использованием списков.

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

25 Aug 2024

Математические операции (Часть 2)

(...)

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


import math

# Квадратный корень

print(math.sqrt(25)) # Вывод: 5.0

# Тригонометрические функции

print(math.sin(math.radians(30))) # Вывод: 0.49999999999999994

# Логарифмы

print(math.log(16, 2)) # Вывод: 4.0

# Факториал

print(math.factorial(5)) # Вывод: 120


Операторы сравнения

Операторы сравнения позволяют сравнивать значения и получать результат типа bool (истина или ложь).


x = 5

y = 3


print(x > y) # Вывод: True

print(x < y) # Вывод: False

print(x == y) # Вывод: False

print(x != y) # Вывод: True


Выложил это статью после Pip, потому что здесь нужно устанавливать библиотеку)


23 Aug 2024

Pip (Урок 11)

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

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

Давайте рассмотри эту тему более подробно:


Установка плагинов:

Чтобы использовать какой-то плагин, нужно прежде его установить. Это можно сделать разными способами. Ну так как мы работаем с Thonny, пока разберём только один (просто там нет терминала).

Импортирование плагинов:

Заходим в нашу среду разработки и... Ищем "инструменты", потом выбираем «Управление пакетами». А в строке поиска набираем название нужной библиотеки, ну и понятное дело, устанавливаем её.

Всё, установили, теперь перейдём ко второму этапу - использование библиотек (плагинов). Для этого нужно импортировать плагин, как это сделать, покажу на примере библиотеки 'telebot'. Когда мы её установили, заходим в нашу среду разработки и пишем:


import telebot # Всё, теперь можете смело использовать эту библиотеку у своих проектах


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

25 Aug 2024
Импортируем модуль

Импортируем модуль

23 Aug 2024

Математические операции (Урок 10, часть 1)

Всем привет, это уже вторая экспериментальная статья;) (предыдущую и эту написал умный интеллект) 

Ну-у, не важно, перейдём к теории. Математические операции (они уже нам встречались, но сегодня мы разберём эту тему подробнее)


Математические операции в Python

Python предоставляет широкие возможности для выполнения математических операций. Давайте рассмотрим основные математические операторы и функции в Python:

Основные операторы: 

  • Сложение;
  • Вычитание;
  • Умножение;
  • Деление


Примеры основных операций:

a = 10

b = 3

# Сложение

print(a + b) # Вывод: 13

# Вычитание

print(a - b) # Вывод: 7

# Умножение

print(a * b) # Вывод: 30

# Деление (обычное)

print(a / b) # Вывод: 3.33333333333

# Целочисленное деление

print(a // b) # Вывод: 3

# Остаток от деления

print(a % b) # Вывод: 1

# Возведение в степень

print(a ** b) # Вывод: 1000


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

На этом всё, до встречи) 

20 Aug 2024

Условия (Урок 9)

Всем привет! Сегодня у нас очень важная тема, поэтому советую дочитать до конца. Ну что, перейдём к теории? 

В основе ВСЕХ программ лежат условия. Да-да, даже в нашей первой программе "Hello World!" есть условие: если программа запущена, то вывести на экран фразу 'Hello World!'. 


В Python условные конструкции используются для принятия решений на основе определенных условий. Давайте рассмотрим основные условные операторы в Python:


  • Оператор `if` - позволяет выполнить блок кода, если указанное условие истинно.


    x = 10

    if x > 5:

        print("x больше 5")


  • Оператор `else`- позволяет выполнить блок кода, если условие оператора `if` ложно.


    x = 3

    if x > 5:

         print("x больше 5")

    else:

         print("x не больше 5")


  • Оператор `elif` ("else if") - используется для проверки нескольких условий последовательно.


    x = 8

    if x > 10:

         print("x больше 10")

    elif x > 5:

         print("x больше 5, но не больше 10")

    else:

         print("x не больше 5")


  • Вложенные опреаторы - Можно вкладывать одни условные конструкции внутрь других для более сложной логики.


    x = 7

    y = 5

    if x > 5:

        if y > 3:

            print("Оба условия выполнены")

        else:

            print("Первое условие верно, второе нет")

     else:

         print("Первое условие не верно")


Условные конструкции - это мощный инструмент в Python для управления потоком выполнения программы в зависимости от различных условий. Правильное использование условий позволяет писать более гибкий и функциональный код.

Более подробно можно почитать здесь.

19 Aug 2024

Типы данных (Урок 8)

Так... Типы данных, давайте разберём самые основные: int, float, str и bool.

  • int - представляет целые числа;
  • float - числа с плавающей точкой, то есть которые могут иметь десятичную часть;
  • str - это текст;
  • bool - это "True" и "False" (0 и 1)


Ну-у, впринцепе, всё)

Скажите зачем нам это? А вот зачем: например, нам необходимо сложить два числа, 5 и то, которое мы получим от юзера. Код будет выглядеть примерно так:

a = 5

b = input("Введите число: ")

c = a+b

print(c)

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

Ага, как видите, даже такая мелочь может привести к ошибке, вот исправленный код:

a = 5

b = float(input("Введите число: ")) #Указываем, что пользователь вводит данные с типом float

c = a+b

print(c)


На этом всё, до встречи;) Хотя нет, если хотите больше узнать о типах данных, то переходите по этой ссылке. Теперь всё)





12 Aug 2024

Ввод и вывод (Урок 7)

Всем привет, давно не виделись (мне просто было лень писать статьи...)

Ну ладно, перейдём к делу. А, нет, ещё кое-что - теперь у меня новый ноут;) И это значит, что мы выйдим на новый уровень! И ещё одно, я немного перепутал название в прошлой статье😂, теперь всё верно)

Вроде бы всё сказал... 

Так вот, ввод и вывод.

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

input() - это команда для ввода. Давайте немного её усовершенствуем - допишем в нутри скобок текст. А теперь создадим переменную name, в которую поместим нашу усовершенствованую функцию, получится как-то так:


name = input('Напишите что нибудь: ')

#Ну-у, я думаю здесь всё и так понятно. Теперь выведим эту переменную на экран

print(name)

#Когда выводим переменные, кавычки не пишем, это же не текст) 


На этом всё, до встречи;) 

Мой новый ноут

Мой новый ноут

Страница:1 - 2
Настройки файлов cookies
X
Этот сайт использует файлы cookie, чтобы упростить для вас просмотр сайта.
Вы можете принять их все или выбрать типы файлов cookies, которые вы готовы разрешить.
Настройки конфиденциальности
Выберите, какие файлы cookies вы хотите разрешить при просмотре этого сайта. Обратите внимание, что некоторые файлы cookies нельзя отключить, так как без них сайт не будет работать.
Важные
Для предотвращения спама этот сайт использует Google Recaptcha в своих контактных формах.

Этот сайт также может использовать файлы cookies для электронной коммерции и платежных систем, которые необходимы для правильной работы сайта.
Службы Google
Этот сайт использует файлы cookie Google для доступа к таким данным, как страницы, которые вы посещаете, и ваш IP-адрес. Сервисы Google на этом сайте могут включать:

- Карты Google
Основанные на данных
Этот сайт может использовать файлы cookie для записи поведения посетителей, отслеживания рекламных конверсий и создания аудиторий, в том числе из:

- Google Analytics
- Мониторинг конверсий Google Ads
- Facebook (Meta Пиксель)