14289
Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/1961404
Читать полностью…def get_ranobe_info(url):
# 1. Извлекаем slug
slug_match = re.search(r'(?:ru/book/|ru/|me/)([0-9]+--[^/?#]+)', url)
if not slug_match:
return {"status": "error", "message": "Не удалось распознать ссылку."}
slug = slug_match.group(1)
# 2. Оставляем только ГАРАНТИРОВАННО рабочие поля
# Убрал chapters_count, так как на нем сервер выдает 422
fields = [
"views",
"rate_avg",
"status_id",
"type_id",
"metadata"
]
query_params = "&".join([f"fields[]={f}" for f in fields])
api_url = f"https://api.cdnlibs.org/api/manga/{slug}?{query_params}"
scraper = cloudscraper.create_scraper()
headers = {
"site-id": "3",
"Referer": "https://ranobelib.me/",
"Accept": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
try:
response = scraper.get(api_url, headers=headers)
if response.status_code != 200:
return {"status": "error", "message": f"Ошибка {response.status_code}. Возможно, поле устарело."}
json_data = response.json()
data = json_data.get('data', {})
# --- Извлекаем данные аккуратно ---
# 1. Название
name = data.get('rus_name') or data.get('name') or "Название не найдено"
# 2. Просмотры
v = data.get('views', {})
views = v.get('total') if isinstance(v, dict) else v
# 3. Рейтинг
rating = data.get('rate_avg') or 0
# 4. Главы (теперь берем из метаданных, это надежнее)
meta = data.get('metadata', {})
chapters = meta.get('count') or 0
# 5. Статус и Тип
status = data.get('status', {}).get('label') or "Онгоинг"
m_type = data.get('type', {}).get('label') or "Авторский"
return {
"status": "success",
"name": name,
"views": views,
"rating": rating,
"chapters": chapters,
"type": m_type,
"state": status
}
except Exception as e:
return {"status": "error", "message": str(e)}
if name == "main":
my_url = "https://ranobelib.me/ru/book/141616--dipenseu-geim-ui-poggun-i-doeeossda?ui=10517610"
res = get_ranobe_info(my_url)
if res["status"] == "success":
print(f"\nНазвание: {res['name']}")
print(f"Просмотры: {res['views']}")
print(f"Рейтинг: {res['rating']}")
print(f"Глав: {res['chapters']}")
print(f"Статус: {res['state']}")
print(f"Тип: {res['type']}")
else:
print(f"Ошибка: {res['message']}")
Написал код, который должен брать данные с API одного сайта, и выводить их. Код рабочий, выводит данные, кроме 2 пунктов. Они выдают по 0
Читать полностью…
За последние сутки в чате обсуждали:
🤖 LLM и будущее программирования ✉
🧪 Методологии разработки: TDD и Чистая архитектура ✉
🔍 Проблемы тестирования: ручное vs автоматическое ✉
💰 Проблема использования float в финансах ✉
👨💻 Собеседования и тестовые задания ✉
🐍 Технический вопрос по Python (метаклассы) ✉
#summary
кто нить забаньте уже это чудо, оно на все мои сообщения уже отэрогировало
Читать полностью…
бедную соню в десятке чатов забанили минут за пять, ох уж эти боты...
Читать полностью…
С другой стороны, а зачем заканчивать с положительной? Не лучше ли начать чтобы вайбить дальше собес?
Читать полностью…
Ребят кто поможет, я написал маленький код но он, не до конца рабочий
Читать полностью…
ниче, ему там буквы читать, а не под микроскопом картинку разглядывать
Читать полностью…
https://www.anthropic.com/news/claude-opus-4-7
Вот кстати релиз новый, попробуй там задать вопрос тот который выше был, может он ответит, написано что лучше комплексные решения делает