Стандартными методами css это не сделать. Может через less? Но как?
.fn(@aspect-class) {
@matches: ~`@{aspect-class}.match(/\d+/g)`;
@a: e(%(`@{matches}[0]`));
@b: e(%(`@{matches}[1]`));
// остальная логика
}
.fn(aspect-43-34);
скажите как бороться с этим? Как удалить эти ссылки?
Я ещё не пробовала react. Некоторые говорят на нём писать, некоторые на чистом js.
Что нужно изучить чтобы написать онлайн-доску?
Немного могу на python и php
Но появилась идея запрашивать не все посты, а в зависимости от нужной категории. Все существующие ~ 2000 постов разделить на категории. Будет ли такая реализация работать быстрее?
Либо есть какие-то другие идеи?
$cache = get_transient('all_posts_cache');
if (!$cache) {
$posts = get_posts([
'numberposts' => -1,
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post-item',
// Искать по слагу категории
'category_name' => 'category_name',
// Или искать по id категории
// 'cat' => 123,
]);
// Кэширование на 1 час
set_transient('all_posts_cache', $posts, HOUR_IN_SECONDS);
}
else {
$posts = $cache;
}
Развернуть backend и frontend в одной сети и не открывать порты бека во внешнюю сеть, чтобы открыты были только порты фронтенда.
Вопрос, такой расклад событий может помочь ограничить доступ к эндпоинтам?
# EC.presence_of_element_located((By.CSS_SELECTOR, "product-slider__img js-product-current-img"))
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
options = Options()
service = Service(r'D:\project\chromedriver-130.0.6723.93.exe')
driver = webdriver.Chrome(service=service, options=options)
url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
driver.get(url)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
page_html = driver.page_source
print(page_html)
except TimeoutException:
print("Элемент не найден")
finally:
print('Программа завершена')
driver.quit()
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
options = Options()
service = Service(r'D:\project\geckodriver.exe')
driver = webdriver.Firefox(service=service, options=options)
url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
driver.get(url)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
page_html = driver.page_source
print(page_html)
except TimeoutException:
print("Элемент не найден")
finally:
print('Программа завершена')
driver.quit()
Этот метод можно вызвать с ключом доступа пользователя, полученным в Standalone-приложении через Implicit Flow.
Требуются права доступа: wall.
Implicit Flow для получения ключа доступа пользователя
С 25 июня 2024 года способ получения ключа доступа пользователя (access token) изменился.
Получить ключ теперь можно так:
•
C помощью библиотеки VK ID SDK.
Шаги получения ключа зависят от типа вашего приложения: Web, Android, iOS.
— или —
•
Без SDK, используя HTTP-запрос.
Шаги получения ключа зависят от типа вашего приложения: Web, Android, iOS.
Мы рекомендуем использовать SDK-библиотеку. Она включает готовый код для отрисовки формы ввода имени пользователя и пароля, а также даёт возможность использовать вход по One Tap.
При подключении без SDK форму ввода понадобится реализовать самостоятельно, а вход по One Tap будет недоступен. При создании формы необходимо соблюдать требования VK к дизайну кнопки.
После получения ключа доступа любым из способов вы сможете работать с API ВКонтакте.
Ключи доступа, созданные ранее, продолжают поддерживаться.
Возможно ли с помощью selenium создать такой скрипт, что:
document.querySelector("#butlog").addEventListener('click', (e) => {
e.preventDefault(); // <---
window.location.assign("https://vk.com/");
});
your_secret_key
, скорее всего в ЛК этого сайта.your_secret_key
полученный ключ из п1, вместо остальных - в API руководстве написано, что нужно.import requests
# Подставить нужные данные из API руководства
params = {
'key': '?',
'hash_name': '?',
'id': '?',
'price': '?',
}
# GET запрос на сервер, аналог того, что мы использовали в браузере из п2.
response = requests.get('https://rust.tm/api/v2/buy', params=params)
# Печатаем результат запроса, аналог того, что мы использовали в браузере из п3.
print(response.json())
# В консоль распечатается приблизительно это:
# {
# "success": true,
# "id": "136256960"
# }
# Затем нужно циклом обойти результат с сервера и уже на основание полученных данных - предпринять необходимые действия. Например, пойти пожрать, чем я сейчас как раз и займусь... ;)