from selenium import webdriver
import requests
import os
# юзаем хром
driver = webdriver.Chrome()
# ссылка на сайт для примера (может быть временная, поэтому бдим в оба)
driver.get('https://cdndl.zaycev.net/track/24932675/4srdJGcFYp791F9ABjYLyvNgexnUL8z7GFNMQiNEsrSRee43ZHFr7YoijrrsDraGx7sYdrvkXeKCzu8CwmWR5jBtHr5i49hH8LZ21oYQM6NQzzKomzZKtphTL5f6dNqGddRuMCQNeHGHMkY64WvroQwEvattc4FcXXhJFrxecgAwnEuHvUWxonULTacHy2wXrVhQAWGPgeXg7gnxMr5MNQ6wq9k35Lh3Dkrnuac678AgKKFkN4QY9ymyEL5gi7JfiqomuSVTsYDNb4WHrrFk2ixFia5Lq8ZahJmRgCGCPqJ8ny2jykXrQekfAJdC8e9rxL8wUnLMBcpPeGFJyZ1p64U2VptfeY')
# ищем элемент по css селектору
audio_element = driver.find_element_by_css_selector("source[type='audio/mpeg']")
# извлекаем url из элемента
audio_url = audio_element.get_attribute('src')
# качаем файл
response = requests.get(audio_url)
if response.status_code == 200:
# если файл успешно качнули, то сохраняем в downloads (папка downloads уже должна существовать)
with open('downloads/audio.mp3', 'wb') as f:
f.write(response.content)
driver.quit()
import express from 'express';
import cors from 'cors';
import axios from 'axios';
const app = express();
app.use(cors());
app.get('/getBooks', async (req, res) => {
try {
const result = await axios.get('https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves&key=myKeyApi');
res.json(result.data);
} catch (error) {
console.error(error);
res.status(500).send(error);
}
});
app.listen(4000, () => {
console.log('Proxy server running on http://localhost:4000');
});
{"proxy": "https://www.googleapis.com"}
>
и _
, которые также являются частью Вашей строки bytes
. Коды этих символов (62 и 95) в десятичной системе и являются теми числами, которые вызывали у Вас вопросы.data = b'>\x02\xfe\xbf_\xec\xe6\xee\x00R'
for i in range(len(data)):
hex_repr = '\\x{:02x}'.format(data[i])
print(i, data[i], f"({hex_repr})")
# 0 62 (\x3e)
# 1 2 (\x02)
# 2 254 (\xfe)
# 3 191 (\xbf)
# 4 95 (\x5f)
# 5 236 (\xec)
# 6 230 (\xe6)
# 7 238 (\xee)
# 8 0 (\x00)
# 9 82 (\x52)
Got error selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable: Element is not currently visible and may not be manipulated
Как можно поправить? На экране он виден
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("example.com")
# находим и кликаем на элемент .SumoSelect
dropdown_container = driver.find_element(By.CSS_SELECTOR, ".SumoSelect")
dropdown_container.click()
# ждем появления элемента li.opt label, но не более 10 сек
option_to_select = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "li.opt label"))
)
# итерируемся по всем option и кликаем, если текст option равен AB
for option in options:
if "AB" == option.text.strip():
option.click()
break
else:
print("Не удалось найти нужную опцию.")
driver.quit()
Почему когда я указываю большие разбиваемого и количества слогаемых,вылетает ошибка:
print(partition(1024,5))
import sys
sys.setrecursionlimit(5000)
def partition(n, k):
stack = [(n, k, [])]
while stack:
current_n, current_k, current_partition = stack.pop()
if current_n == 0 and current_k == 0:
print(" + ".join(map(str, current_partition)))
elif current_n == 0 or current_k == 0:
continue
elif current_n < 0:
continue
else:
for i in range(1, current_n+1):
new_n = current_n - i
new_k = current_k - 1
new_partition = current_partition + [i]
stack.append((new_n, new_k, new_partition))
partition(5, 3)
может-ли флексбокс быть одновременно флексконтейнером
Т.е., есть ли возможность не вставлять в флексбокс новый фл.контейнер
.container (padding-x)
> .row (negative margin-x)
> .col (padding-x)
..flex
> .col
(с одним контейнером) так же, как в Grid layot можно лишь динамическим высчитыванием этих отступов, использую css calc {}
Подмена DNS, Man-in-the-middle attack, Спуфинг
Если роутер захватить развлечений можно много придумать
Какую ответственность несет провайдер в случае взлома?
А провайдер в суде разведет лапки и скажет ну это наши поставщики не обновляли прошивки 7 лет, а мы не при чем.
Так выходит?
$breakpoint_sm: 300px;
$breakpoint_md: 700px;
$breakpoint_xl: 1000px;
@import "breakpoints";
@media screen and (max-width: $breakpoint_md) {
// ...
}
@import "fonts";
@import "breakpoints";
import { FC } from "react";
import { AppProps } from "next/app";
import "./styles/index.scss";
const App: FC<AppProps> = ({ Component, pageProps }) => (
<Component {...pageProps} />
);
export default App;
Но тут видите, мы все равно подключаем
Dmitrijs Balcers "breakpoints"; в BestComponent, а надо без импорта, сразу
:root {
--breakpoint-sm: 300px;
--breakpoint-md: 700px;
--breakpoint-xl: 1000px;
}
@media screen and (max-width: var(--breakpoint-md)) {}
{
test: /\.scss$/,
use: [
"style-loader",
"css-loader",
{
loader: "sass-loader",
options: {
additionalData: `@import "path/breakpoints.scss";`
}
}
]
}
На каком уровне нужно знать react для junior?
Какие есть отдельные важные темы?
<div class="order">
<div class="order__item order__item-number">Номер заказа</div>
<div class="order__item order__item-sum">Сумма</div>
<div class="order__item order__item-status">Статус заказа</div>
<div class="order__item order__item-transport">Транспортная компания</div>
<div class="order__item order__item-description">Описание заказа</div>
<div class="order__item order__item-buttons">Кнопки</div>
</div>
/* desktop */
.order {
display: grid;
grid-template-columns: 1fr 1fr; /* two columns */
}
.order__item {
border: 1px solid black;
padding: 10px;
}
/* first column */
.order__item-number,
.order__item-sum {
grid-column: 1;
background-color: #f2f2f2;
}
/* two column */
.order__item-status,
.order__item-transport,
.order__item-description,
.order__item-buttons {
grid-column: 2;
background-color: #e6e6e6;
}
/* modile */
@media (max-width: 768px) {
.order__item-description {
grid-column: 1 / span 2; /* span two columns */
background-color: #d4d4d4;
}
}
export const getServerSideProps = async (context) => {
const page = context.query.page || 1;
try {
const res = await axios.get(`tracks?page=${page}`);
return {
props: {
tracks: res.data.items,
},
}
} catch (e) {
return {
notFound: true,
}
}
}
export const getStaticProps = async (context) => {
const page = context.params.page;
// code
}
import winreg
# Добавляем в автозагрузку
def add_to_startup(program_name, executable_path):
# Реестр
registry_path = winreg.HKEY_CURRENT_USER
key_path = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
try:
# Открываем ключ реестра для записи
with winreg.OpenKeyEx(registry_path, key_path, 0, winreg.KEY_WRITE) as registry_key:
# Создание или обновление реестра
winreg.SetValueEx(registry_key, program_name, 0, winreg.REG_SZ, executable_path)
print(f"{program_name} добавлена в автозагрузку.")
except PermissionError:
print("Нужны админские права.")
# Проверка программы в автозагрузке
def check_startup_entry(program_name):
registry_path = winreg.HKEY_CURRENT_USER
key_path = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
try:
# Открываем ключ реестра для чтения
with winreg.OpenKeyEx(registry_path, key_path, 0, winreg.KEY_READ) as registry_key:
program_path, regtype = winreg.QueryValueEx(registry_key, program_name)
print(f"{program_name} уже добавлена в автозагрузку с путем: {program_path}")
except FileNotFoundError:
print(f"{program_name} не найдена в автозагрузке.")
if __name__ == "__main__":
program_name = "GodzillaSoft"
program_path = r"C:\path\GodzillaSoft.exe"
check_startup_entry(program_name)
add_to_startup(program_name, program_path)
ERROR: npm v9.8.1 is known not to run on Node.js v12.22.9. This version of npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You can find the latest version at https://nodejs.org/.
ОШИБКА: известно, что npm версии 9.8.1 не запускается на Node.js версия 12.22.9. Эта версия npm поддерживает следующие версии узлов: `^14.17.0 || ^16.13.0 || >=18.0.0`. Вы можете найти последнюю версию по адресу https://nodejs.org /.