🕵️♂️ Как парсить веб-страницы на Python с помощью BeautifulSoup
Парсинг HTML позволяет извлекать нужные данные с сайтов, автоматизировать сбор информации и анализировать веб-ресурсы. В этом посте разберем базовый пример с библиотекой BeautifulSoup.
💬 Почему это полезно?
— Можно автоматически собирать данные с сайтов.
— Упрощает анализ HTML-страниц.
— Позволяет извлекать конкретные элементы без сложного кода.
⚙️ Простой пример
1. Для начала установим библиотеку:
2. Допустим, у нас есть страница с HTML-кодом:
3. Напишем код для парсинга:
➡️ Как это работает?
•
•
•
•
🐍 Ghostly Python | #гайды
Парсинг HTML позволяет извлекать нужные данные с сайтов, автоматизировать сбор информации и анализировать веб-ресурсы. В этом посте разберем базовый пример с библиотекой BeautifulSoup.
— Можно автоматически собирать данные с сайтов.
— Упрощает анализ HTML-страниц.
— Позволяет извлекать конкретные элементы без сложного кода.
1. Для начала установим библиотеку:
pip install beautifulsoup4 requests
2. Допустим, у нас есть страница с HTML-кодом:
<html>
<body>
<h1>Привет, мир!</h1>
<p class="info">Это пример страницы</p>
</body>
</html>
3. Напишем код для парсинга:
import requests
from bs4 import BeautifulSoup
# Загружаем страницу
url = "https://example.com"
response = requests.get(url)
# Разбираем HTML
soup = BeautifulSoup(response.text, "html.parser")
# Извлекаем заголовок
title = soup.find("h1").text
print(title) # Привет, мир!
# Извлекаем текст из <p> с классом "info"
info = soup.find("p", class_="info").text
print(info) # Это пример страницы
•
requests.get(url) загружает HTML-страницу.•
BeautifulSoup(response.text, "html.parser") анализирует HTML.•
soup.find("h1").text извлекает текст заголовка.•
soup.find("p", class_="info").text получает текст из <p> с классом info.Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥3❤1
Читаешь дизассемблированный код в Ghidra и тонешь в
local_1-999? Разбираем, как с помощью Python-скриптов автоматизировать разметку переменных и упростить анализ кода, чтобы не тратить часы на рутину.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
pathlib — удобная работа с файлами и папкамиpathlib — это современный модуль Python для работы с путями к файлам и директориям. В отличие от os.path, он предлагает объектно-ориентированный подход, что делает код чище и понятнее.from pathlib import Path
# Создаем объект пути
file_path = Path("example.txt")
# Проверяем существование файла и читаем его содержимое
if file_path.exists():
print(file_path.read_text())
Path("example.txt") создаёт объект пути вместо обычной строки..exists() проверяет, существует ли файл..read_text() позволяет прочитать файл без использования open().Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Faker — это удобная библиотека для генерации фейковых данных: имен, адресов, номеров телефонов, дат, текстов и многого другого. Полезна для тестирования и заполнения баз данных случайными значениями.
from faker import Faker
fake = Faker("ru_RU") # Локализация для русского языка
print(fake.name()) # Иван Петров
print(fake.address()) # г. Москва, ул. Ленина, д. 10
print(fake.email()) # random@example.com
pip install faker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥2
Здесь собраны реализации более 30 паттернов: Singleton, Factory, Observer, Command и многих других.
Примечательно, что код написан читаемо, сопровождается комментариями и объяснениями, что делает его отличным ресурсом для изучения архитектурных решений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
itertools.cycle — бесконечный перебор элементовПозволяет зациклить последовательность и бесконечно перебирать её элементы.
from itertools import cycle
colors = cycle(["🔴", "🟢", "🔵"])
for _ in range(6):
print(next(colors), end=" ") # 🔴 🟢 🔵 🔴 🟢 🔵
cycle() создает бесконечный итератор из списка.Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🗂 Работа с ZIP-архивами в Python с помощью
Архивирование файлов позволяет экономить место и удобно хранить данные. В этом посте разберем базовый пример работы с
💬 Почему это полезно?
— Можно автоматически сжимать файлы.
— Упрощает хранение и передачу данных.
— Позволяет извлекать файлы без ручных действий.
⚙️ Простой пример
1. Установим библиотеку (она встроена в Python):
2. Допустим, у нас есть файл
3. Напишем код:
➡️ Как это работает?
•
•
• Можно архивировать папки, несколько файлов или извлекать данные.
🐍 Ghostly Python | #гайды
zipfileАрхивирование файлов позволяет экономить место и удобно хранить данные. В этом посте разберем базовый пример работы с
zipfile.— Можно автоматически сжимать файлы.
— Упрощает хранение и передачу данных.
— Позволяет извлекать файлы без ручных действий.
1. Установим библиотеку (она встроена в Python):
pip install zipfile36 # Только для старых версий Python
2. Допустим, у нас есть файл
file.txt, который нужно заархивировать:3. Напишем код:
import zipfile
with zipfile.ZipFile("archive.zip", "w") as zipf:
zipf.write("file.txt") # Добавляем файл в архив
•
ZipFile("archive.zip", "w") создаёт новый архив.•
.write("file.txt") добавляет файл в ZIP.• Можно архивировать папки, несколько файлов или извлекать данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10⚡1
__slots__ в Python — магия, которая экономит память и запрещает лишние атрибуты. Разбираем, как он работает, когда стоит его применять, а когда лучше обойти стороной.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
MoviePy — это мощная библиотека для работы с видео в Python. Позволяет обрезать, соединять видео, накладывать текст, извлекать аудио и многое другое.
from moviepy.editor import VideoFileClip
# Загружаем видеофайл
clip = VideoFileClip("input.mp4")
# Обрезаем первые 5 секунд и сохраняем новый файл
clip.subclip(0, 5).write_videofile("output.mp4")
pip install moviepy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3⚡1
itertools.permutations — генерация всех возможных перестановокПозволяет получить все возможные упорядоченные комбинации элементов из последовательности.
from itertools import permutations
items = ["A", "B", "C"]
for perm in permutations(items):
print(perm)
permutations() создаёт все возможные перестановки элементов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Хотите гарантированно завалить IT-собес? Легко! Разбираем типичные ошибки, на которых кандидаты сыпятся снова и снова. Даже опытных разработчиков могут подловить на неожиданных вопросах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👏1
Здесь представлено сжатое руководство с примерами кода, охватывающее синтаксис, структуры данных, функции, классы и многое другое.
Примечательно, что материал подан в формате "минимум теории — максимум примеров", что позволяет быстро освоить основы языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Pillow — это мощная библиотека для работы с изображениями в Python. Позволяет изменять размер, применять фильтры, конвертировать форматы и редактировать изображения.
from PIL import Image
# Открываем изображение
image = Image.open("input.jpg")
# Изменяем размер и сохраняем
image.resize((200, 200)).save("output.jpg")
pip install pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Нужно оцифровать чертёж А3, но под рукой только сканер А4? Придётся сканировать по частям, а потом как-то их склеить. Разбираем, как автоматизировать этот процесс и навсегда забыть про ручную сборку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2
str.removeprefix и str.removesuffix — удобное удаление префиксов и суффиксовПозволяют легко удалять заданные начала и окончания строк без использования
str.replace() или slice.text = "prefix_filename.txt"
print(text.removeprefix("prefix_")) # filename.txt
print(text.removesuffix(".txt")) # prefix_filename
removeprefix() удаляет указанный префикс, если он есть.removesuffix() аналогично работает с окончаниями строк.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
OpenCV — это мощная библиотека для обработки изображений и видео в Python. Позволяет выполнять распознавание лиц, обработку контуров, применение фильтров и многое другое.
import cv2
# Загружаем изображение
image = cv2.imread("input.jpg")
# Преобразуем в оттенки серого
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Сохраняем результат
cv2.imwrite("output.jpg", gray)
pip install opencv-python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12