Pyppeteer - это библиотека Python для автоматизации браузера Chromium с помощью Puppeteer JavaScript API. Это мощный инструмент для веб-скрейпинга, тестирования и автоматизации веб-браузера.
Установка Pyppeteer проста и прямолинейна. Все, что вам нужно, это Python 3.6 или выше. Установите Pyppeteer, используя pip:
pip install pyppeteer. В процессе установки Pyppeteer скачает последнюю версию Chromium.Pyppeteer предлагает богатый набор функций для автоматизации веб-браузера. Вы можете автоматизировать ввод данных, клики по ссылкам, скачивание файлов и многое другое.
Одним из самых распространенных применений Pyppeteer является создание снимков веб-страниц. Все, что вам нужно сделать, это создать экземпляр браузера, открыть новую страницу, перейти на URL и сделать снимок.
import asyncio
from pyppeteer import launch
async def take_screenshot(url, save_path):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.screenshot({'path': save_path})
await browser.close()
url = '<https://www.example.com>'
save_path = 'example.png'
asyncio.get_event_loop().run_until_complete(take_screenshot(url, save_path))
Pyppeteer также может быть использован для автоматического тестирования веб-приложений, включая взаимодействие с JavaScript и AJAX.
import asyncio
from pyppeteer import launch
async def test_website(url):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.click('#myButton')
await page.waitForSelector('#myResult')
result = await page.evaluate('document.querySelector("#myResult").innerText')
await browser.close()
return result
url = '<https://www.example.com>'
asyncio.get_event_loop().run_until_complete(test_website(url))
Ссылка на либу
https://pypi.org/project/pyppeteer/
https://pypi.org/project/pyppeteer/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
Anonymous Quiz
50%
3 1 2
12%
3 6
10%
[1, 2, 1, 2, 1, 2]
10%
[1, 2][1, 2][1, 2]
11%
Error
7%
Не знаю 😔
👍5🤯1
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
В принте сначала выводим b — 3, а потом через запятую выводим *a.
* рядом с итерируемым объектом как бы распаковывает его в выводе. Поэтому список [1, 2] превратится просто в 1 2.
* рядом с итерируемым объектом как бы распаковывает его в выводе. Поэтому список [1, 2] превратится просто в 1 2.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Оператор звездочка (*) в Python часто используется для умножения или повторения чисел и строк соответственно. Однако у него есть уникальная функциональность, когда речь идет об итерируемых объектах.
numbers = [1, 2, 3]
print(*numbers) # Вывод: 1 2 3
words = ["Hello", "World"]
print(*words) # Вывод: Hello World
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Первая часть посвящена парсингу!
p.s. настроил и установил новый микро, чувствуется ли апгрейд по звуку?
https://www.youtube.com/watch?v=FOI8IIq2coU
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Телеграм БОТ РАСПИСАНИЯ университета на Python | ПАРСИМ данные
В этом видео мы начнем разработку телеграм бота, который будет предоставлять возможность посмотреть расписание пар для университета. В первой части спарсим данные с сайта, посмотрим, как их можно выгрузить исходя из нажатой кнопки.
🔥 Подписывайся на наш…
🔥 Подписывайся на наш…
👍6❤🔥1
x = int(input ('Введите число:'))
if x :
pass
else:
print('Число равно нулю')
Нужно упростить конструкцию if в python
Ответы пищите в комменты!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⌨️ Использование Keyboard.add_hotkey в Python
➡️ Понимание Keyboard.add_hotkey
Функция
## Примеры использования Keyboard.add_hotkey
Функция
➡️ Практические примеры использования Keyboard.add_hotkey
Для иллюстрации рассмотрим пример, в котором мы хотим напечатать "Привет, Мир!" при нажатии клавиш 'Ctrl + H'. Сначала нам нужно импортировать модуль
В приведенном выше коде, каждый раз при нажатии 'Ctrl + H', вызывается функция
Функция
keyboard.add_hotkey() в Python позволяет вам назначить определенную функцию на клавиатурный ярлык, известный как горячая клавиша. Эта функция принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии горячей клавиши. Синтаксис следующий: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False). Горячей клавишей может быть одна клавиша, комбинация клавиш или даже последовательность клавиш.## Примеры использования Keyboard.add_hotkey
Функция
keyboard.add_hotkey() очень удобна для автоматизации задач и увеличения интерактивности ваших скриптов на Python. Например, вы можете использовать ее, чтобы создать простой кейлоггер, автоматизировать создание скриншотов или даже создать пользовательский ярлык для определенной задачи в вашем приложении на Python. Однако очень важно использовать эту функцию ответственно и этично, учитывая ее возможное злоупотребление.Для иллюстрации рассмотрим пример, в котором мы хотим напечатать "Привет, Мир!" при нажатии клавиш 'Ctrl + H'. Сначала нам нужно импортировать модуль
keyboard. Если он не установлен, используйте pip для его установки. Затем мы определяем нашу функцию и добавляем горячую клавишу следующим образом:import keyboard
def hello_world():
print("Привет, Мир!")
keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()
В приведенном выше коде, каждый раз при нажатии 'Ctrl + H', вызывается функция
hello_world, и "Привет, Мир!" выводится на консоль.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Советую посмотреть!
YouTube
Python in 100 Seconds
Python is arguably the world's most popular programming language. It is easy to learn, yet suitable in professional software like web applications, data science, and server-side scripts.
https://www.youtube.com/watch?v=2JCZRG1ZuQs
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3👍1🤔1
👍6
Оператор
pass в Python, возможно, является одним из наиболее непонятных для новичков. Этот оператор не делает абсолютно ничего. Но почему же он тогда нужен?Во время разработки программы, вы можете встретить ситуации, когда вам нужно оставить пустое место для будущего кода. Вместо того чтобы оставлять комментарии, вы можете использовать оператор
pass, чтобы указать на то, что здесь будет код. Это позволяет сохранить структуру программы и избежать ошибок синтаксиса.Оператор
pass может быть полезен при создании минимальных классов или функций. В Python, класс или функция не может быть пустой. Если вы попытаетесь создать пустой класс или функцию, интерпретатор вернет ошибку. Оператор pass позволяет обойти это ограничение.Оператор
pass также может быть использован для управления потоком программы. Иногда в условной конструкции if/elif/else или в цикле for/while может не быть необходимости выполнять какое-либо действие. В этих случаях можно использовать оператор pass для обозначения пустого блока.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🧐 Лампочки и переключатели
Условие:
В первой закрытой комнате с низким потолком висит 3 лампы накаливания. В другой такой же комнате установлено 3 переключателя от каждой из них. Можно как угодно дергать переключатели, вот только перейти из 2-ой комнаты в 1-ую разрешено только 1 раз. Как узнать, за какую лампочку отвечает каждый из переключателей?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤔1
Python Hub - сборище Питонистов
та, которая горит, соединена с последним переключателем, который мы трогали;
та, которая не горит и теплая, соединена с первым переключателем, который мы трогали;
за не горящую и холодную лампочку отвечает переключатель, который мы вообще не трогали.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Мне задавали ее на одном из собеседований в обычную компанию пару лет назад. Так что вполне реальный кейс задачи.
Кабель длиной 80 метров висит на двух столбах. Высота каждого столба — 50 метров. Каково расстояние между столбами, если центр провисающего кабеля находится:
а) на высоте 20 метров от земли — вариант для технарей;
б) на высоте 10 метров от земли — вариант для гуманитариев.
Для решения можно использовать инженерный калькулятор с расширенными функциями.
p.s. для технарей раз в 100 сложнее, чем для гуманитариев.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Python Hub - сборище Питонистов
У гуманитариев кабель длиной 80 метров провисает на минимальной высоте 10 метров от земли. При этом высота столба 50 метров. Значит, если провести новый «уровень земли» (красным), верхняя часть столба будет равняться 40 метрам.
Посмотрите на рисунок. Нет ли здесь ошибок?
Если верхняя часть столба 40 метров и длина кабеля до середины — тоже 40 метров, то какой это треугольник? Может ли такой треугольник существовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
💀 Решение для технарей
Первое, что мы сделаем, — поднимем уровень земли, чтобы он касался провода. Так как до центра провиса 20 метров, то высота столбов тоже уменьшится на эти 20 метров:
Расстояние между столбами у нас при этом осталось тем же самым.
Так как кабель провисает по центру, нам достаточно найти расстояние от края до середины и умножить его на 2 — так мы найдём полное расстояние между столбами.
❗️ Самая важная часть.
Так как провисающий кабель похож на параболу, то мы для решения будем использовать не тригонометрические функции, которые работают с прямыми и окружностями, а гиперболические.
Сначала поработаем с высотой столба. Запишем формулу для расстояния, затем добавим на рисунок те данные, которые мы уже знаем, и раскроем формулу:
Теперь составим второе уравнение, в котором используем значение длины кабеля. Так как он провисает ровно посередине, то его длина от края до точки перегиба — 40 метров.
Добавляем свойство о том, что разность квадратов гиперболического синуса и косинуса равна единице:
Раскрываем скобки, приводим всё к классическому квадратному уравнению, и, решая его, получаем ответ: a = 35/3.
Это значение подставляем в формулу гиперболического синуса, чтобы посчитать половину длины кабеля:
Решаем это уравнение на калькуляторе и получаем ответ: x ≈ 22,7. Это половина расстояния между столбами, а полное расстояние ≈ 45,4 метра.
Ответ: если высота до центра провиса равна 20 метров, то расстояние между столбами составляет примерно 45,4 метра.
Первое, что мы сделаем, — поднимем уровень земли, чтобы он касался провода. Так как до центра провиса 20 метров, то высота столбов тоже уменьшится на эти 20 метров:
Расстояние между столбами у нас при этом осталось тем же самым.
Так как кабель провисает по центру, нам достаточно найти расстояние от края до середины и умножить его на 2 — так мы найдём полное расстояние между столбами.
❗️ Самая важная часть.
Так как провисающий кабель похож на параболу, то мы для решения будем использовать не тригонометрические функции, которые работают с прямыми и окружностями, а гиперболические.
Сначала поработаем с высотой столба. Запишем формулу для расстояния, затем добавим на рисунок те данные, которые мы уже знаем, и раскроем формулу:
Теперь составим второе уравнение, в котором используем значение длины кабеля. Так как он провисает ровно посередине, то его длина от края до точки перегиба — 40 метров.
Добавляем свойство о том, что разность квадратов гиперболического синуса и косинуса равна единице:
Раскрываем скобки, приводим всё к классическому квадратному уравнению, и, решая его, получаем ответ: a = 35/3.
Это значение подставляем в формулу гиперболического синуса, чтобы посчитать половину длины кабеля:
Решаем это уравнение на калькуляторе и получаем ответ: x ≈ 22,7. Это половина расстояния между столбами, а полное расстояние ≈ 45,4 метра.
Ответ: если высота до центра провиса равна 20 метров, то расстояние между столбами составляет примерно 45,4 метра.
❤2👍2