1. Для узнавания, кто исключил пользователя из голосового канала с помощью логов сервера в discord.py, вы можете использовать функцию on_member_update() для обработки изменений в состоянии участника, который может указывать на исключение из голосового канала. Затем вы можете проверить атрибуты наличия исключения и получить информацию о пользователе, который это сделал.
```python
@client.event
async def on_member_update(before, after):
if before.voice_channel != after.voice_channel and after.voice_channel is None:
print(f"{after.name} был исключен из голосового канала.")
```
2. Чтобы получить информацию о том, кто выгнал пользователя из голосового канала, в discord.py вы можете использовать атрибут audit_logs класса discord.Guild, который содержит информацию о действиях администраторов на сервере, включая исключение пользователей. Однако ошибка "AttributeError: type object 'AuditLogAction' has no attribute 'voice_state_update'" указывает на то, что 'AuditLogAction' не имеет атрибута 'voice_state_update'.
```python
@client.event
async def on_member_update(before, after):
async for entry in guild.audit_logs(limit=1, action=discord.AuditLogAction.member_update):
if entry.target == after and entry.after.channel is None:
print(f"{entry.user.name} исключил {after.name} из голосового канала.")
```
Если у вас возникают проблемы с доступом к нужной информации через discord.py из-за ошибок, попробуйте обратиться за помощью к документации или сообществу discord.py для получения дополнительных советов.