from multiprocessing import Lock, Pool
lock = Lock()
with lock:
driver = uc.Chrome(seleniumwire_options=wire_options, options=options)
from multiprocessing import Manager, Pool
manager = Manager()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
with Pool(processes=2) as p:
p.map(get_whoer, proxy_list)
from queue import Queue
from multiprocessing import Pool
queue = Queue()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
proxy_list = list(map(str.rstrip, open('proxy.txt').readlines()))
for proxy in proxy_list:
queue.put(proxy)
with Pool(processes=2) as p:
p.map(get_whoer, range(len(proxy_list)))
преподаватель сказал, что нам нельзя использовать Woocommerce, Elementor для создания магазина.
Подскажите, пожалуйста, как можно создать более менее рабочий магазин?
и прочие функции типичного Интернет магазина.
Не очень понимаю, как возможно реализовать "добавление товара в корзину"
if (!session_id()) {
session_start();
}
function test_session() {
if (!session_id()) {
session_start();
}
}
add_action('init', 'test_session', 1);
function add_to_cart($id, $q = 1) {
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id] += $q;
} else {
$_SESSION['cart'][$id] = $q;
}
}
function show_cart() {
if (!empty($_SESSION['cart'])) {
foreach($_SESSION['cart'] as $id => $q) {
$product = get_post($id);
echo "<div>{$product->post_title} (x$q)</div>";
}
} else {
echo "Cart has empty";
}
}
Как обойти проверку на бота cloudflare с помощью undetected-chromedriver?
За сколько времени можно въехать в тему?
Есть ли какие-нибудь хорошие курсы/ресурсы по делу?
Может быть, лучше обратиться к профессионалу?
Какими сервисами лучше пользоваться?
1.5 недели назад отправил запрос на переезд сайта с http на https в веб мастере, до сих пор жду изменений, сколько мне ждать еще кто знает?
является ли это критичной ошибкой? или можно забить на нее?
RewriteEngine On
# 301 redirection from http to https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 301 redirection from www to non www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Есть ли возможность в python прописать длинный многоуровневый список со словарями и вставлять туда переменные чтобы по итогу я мог сгенерировать из него JSON?
import json
krevetko = 'иа креветкО!'
data = {
"form_id": 1345,
"fields": [
{"id": 1, "value": krevetko}, # <-- this is, krevetko variable
{"id": 2, "value": 10306.25},
{"id": 3, "value": {"item_id": 845}},
{
"id": 4,
"value": [
{
"row_id": 0,
"cells": [
{"id": 6, "value": "2017-08-26"},
{"id": 9, "value": 10000}
]
}
]
}
]
}
print(json.dumps(data))
# {"form_id": 1345, "fields": [{"id": 1, "value": "\u0438\u0430 \u043a\u0440\u0435\u0432\u0435\u0442\u043a\u041e!"}, {"id": 2, "value": 10306.25}, {"id": 3, "value": {"item_id": 845}}, {"id": 4, "value": [{"row_id": 0, "cells": [{"id": 6, "value": "2017-08-26"}, {"id": 9, "value": 10000}]}]}]}
import json
data_dict = {"name": "John", "age": 30}
data_list = [1, 2, 3, 4]
data_string = "Hello, world!"
data_string_cyrillic = "иа креветкО!"
data_number = 42
data_boolean = True
data_none = None
print(json.dumps(data_dict)) # {"name": "John", "age": 30}
print(json.dumps(data_list)) # [1, 2, 3, 4]
print(json.dumps(data_string)) # "Hello, world!"
print(json.dumps(data_string_cyrillic)) # "\u0438\u0430 \u043a\u0440\u0435\u0432\u0435\u0442\u043a\u041e!"
print(json.dumps(data_number)) # 42
print(json.dumps(data_boolean)) # true
print(json.dumps(data_none)) # null
function test() {
global $product;
if($product->is_type('variable')) {
$variations = $product->get_available_variations();
echo '<div class="custom-variations-wrapper">';
foreach($variations as $variation) {
if(isset($variation['display_price'])) {
$variation_id = $variation['variation_id'];
$variation_price = $variation['display_price']; // or 'display_regular_price'
echo '<form action="' . esc_url($product->add_to_cart_url()) . '" method="post" enctype="multipart/form-data">';
echo '<div class="variation" data-variation-id="' . esc_attr($variation_id) . '">';
echo '<p class="price">' . sprintf(__('%s'), wc_price($variation_price)) . '</p>';
echo '<input type="hidden" name="product_id" value="' . esc_attr($product->get_id()) . '" />';
echo '<input type="hidden" name="variation_id" value="' . esc_attr($variation_id) . '" />';
foreach($variation['attributes'] as $attribute => $value) {
echo '<input type="hidden" name="' . esc_attr($attribute) . '" value="' . esc_attr($value) . '">';
}
echo '<button type="submit">' . __('В корзину') . '</button>';
echo '</div>';
echo '</form>';
}
}
echo '</div>';
}
}
add_action('woocommerce_after_shop_loop_item', 'test', 20);
Существует ли способ имитировать эти действия так, чтобы JavaScript успешно их распознавал
Существует ли способ имитировать эти действия так, чтобы JavaScript успешно их распознавал, но без использования библиотеки PyAutoGUI или аналогичных, которые контролируют реальный курсор?
Пример файла JSON
Например мне нужно найти список с id 10 и сохранить все его элементы в отдельный
list_data = [
{
"id": 121,
"type": "form_link",
"name": "cust",
"tooltip": "",
"value": {
"task_id": 432122,
"task_ids": [
1236733
],
"subject": "test_event"
}
},
{
"id": 122,
"type": "text",
"name": "Регион",
"tooltip": "",
"value": "MGN."
},
{
"id": 129,
"type": "text",
"name": "Проблема",
"tooltip": "Заправьте картридж",
"value": "TEST"
},
{
"id": 10,
"type": "person",
"name": "Ответственный",
"tooltip": "none",
"value": {
"id": 888,
"first_name": "Pavel",
"last_name": "Perkov",
"email": "example@anime.com",
"type": "user",
"status": "WORKING",
"web_session_settings": {
"disable": False
},
"mobile_session_settings": {
"disable": False
}
}
}
]
# mega function
def test(data, target_id):
for item in data:
if item.get('id') == target_id:
return item
return None
res = test(list_data, 10)
print(res)
# {'id': 10, 'type': 'person', 'name': 'Ответственный', 'tooltip': 'none', 'value': {'id': 888, 'first_name': 'Pavel', 'last_name': 'Perkov', 'email': 'example@anime.com', 'type': 'user', 'status': 'WORKING', 'web_session_settings': {'disable': False}, 'mobile_session_settings': {'disable': False}}}
item2 = types.KeyboardButton(text="Семья в России"),
bot.reply_to
это откуда? По идее, должно быть bot.send_message
, исправил код, допишите все нужные кнопки и попробуйте, должно заработать:@bot.message_handler(commands=["start"])
def start(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
item1 = types.KeyboardButton(text="Основные документы гражданина Российской Федерации")
# прочее...
keyboard.add(item1, item2)
# прочее...
bot.send_message(
message.chat.id,
f"Привет",
f"{message.from_user.first_name}! Я бот, который поможет тебе. Что ты хочешь узнать..?",
reply_markup=keyboard)