ос виндус 10
питон3,6-3,8
библиотека requests
Доброй ночи, опишу картину
у меня 3,5к сайтов.
Клонированы из 9 оригинальных сайтов, остальное поддомены
хочу через скрипт на питоне менять код, изображение, текст на сайтах.
Каждый сайт разбит на серии от 180 до 1000.
Сам в коде не силен от слова совсем, поэтому обратился за помощью к нейронке(Mistral)
Сайты лежат на сервере Beget.
На текущий момент есть CSV файл с данными и текстом и недо код
Сначала скрипт должен был все это делать сразу на сайте, понял что лучше если запрос будет приходить сразу на хостинг
СSV файл
api_url,api_key,site_id,search_text,replace_text
https://api.beget.com,your_api_key,site_id_1,"БЛа бла бла ","ДА да да"
https://api.beget.com,your_api_key,site_id_2,"БЛа бла бла ","ДА да да"
Сам код
подскажите в том направление двигаюсь или колесо уже придумано?
питон3,6-3,8
библиотека requests
Доброй ночи, опишу картину
у меня 3,5к сайтов.
Клонированы из 9 оригинальных сайтов, остальное поддомены
хочу через скрипт на питоне менять код, изображение, текст на сайтах.
Каждый сайт разбит на серии от 180 до 1000.
Сам в коде не силен от слова совсем, поэтому обратился за помощью к нейронке(Mistral)
Сайты лежат на сервере Beget.
На текущий момент есть CSV файл с данными и текстом и недо код
Сначала скрипт должен был все это делать сразу на сайте, понял что лучше если запрос будет приходить сразу на хостинг
СSV файл
api_url,api_key,site_id,search_text,replace_text
https://api.beget.com,your_api_key,site_id_1,"БЛа бла бла ","ДА да да"
https://api.beget.com,your_api_key,site_id_2,"БЛа бла бла ","ДА да да"
Сам код
Python:
import requests
import json
import csv
# Ваши данные для доступа к API
login = 'your_login' # Замените на ваш логин для API
password = 'your_password' # Замените на ваш пароль для API
api_url = 'https://api.beget.com/api'
# Функция для выполнения запроса к API
def api_request(method, endpoint, params=None):
url = f'{api_url}/{endpoint}'
params = params or {}
params.update({'login': login, 'passwd': password, 'input_format': 'plain', 'output_format': 'json'})
response = requests.request(method, url, params=params)
try:
return response.json()
except requests.exceptions.JSONDecodeError:
print(f"Ошибка декодирования JSON. Ответ: {response.text}")
return None
# Функция для выполнения команды на сервере
def execute_command(site_id, command):
params = {
'site_id': site_id,
'command': command
}
response = api_request('POST', 'site/exec', params)
if response and response.get('status') == 'success':
print(f"Команда '{command}' выполнена успешно на сайте {site_id}")
else:
print(f"Ошибка выполнения команды на сайте {site_id}: {response.get('error_text', 'Неизвестная ошибка')} (Код ошибки: {response.get('error_code', 'Неизвестный код')})")
# Функция для замены текста в файлах на сервере
def replace_text_in_files(site_id, search_text, replace_text, file_path):
# Команда для замены текста в файле
command = f"sed -i 's/{search_text}/{replace_text}/g' {file_path}"
execute_command(site_id, command)
# Чтение списка сайтов из CSV-файла
with open('CSV-файл - Лист1.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
site_id = row['site_id']
search_text = row['search_text']
replace_text = row['replace_text']
file_path = row['file_path'] # Путь к файлу на сервере
# Замена текста
if search_text and replace_text and file_path:
print(f"Начинается замена текста на сайте {site_id}")
replace_text_in_files(site_id, search_text, replace_text, file_path)
print(f"Текст '{search_text}' заменен на '{replace_text}' в файле {file_path} на сайте {site_id}")
подскажите в том направление двигаюсь или колесо уже придумано?