Получение данных через API VK на Python 3.8
Подскажите пожалуйста, как сделать так чтобы при вводе либо самого id номера или полного адреса с протоколом или без, я всегда получал нужные данные ну скажем имя и фамилию нужного пользователя вконтакте???
Например ввожу в поле графического интерфейса: https://vk.com/id1 получаю: Павел Дуров. Либо ввожу в поле графического интерфейса: 1 получаю тоже самое: Павел Дуров. Либо ввожу в поле графического интерфейса: vk.com/id1 получаем также: Павел Дуров.
Ответы (1 шт):
Вот это регулярное выражение (только для числовых id)
(http:\/\/|https:\/\/)?(vk\.com\/)?(\/?id)?(\d+)
подходит под разные вариации ссылки на аккаунт ВК. Если ссылка будет неверна синтаксически или будет являться ссылкой на другой ресурс, то выражение не даст совпадений.
Подробнее в коде:
import re
reg = re.compile("""(http:\/\/|https:\/\/)?(vk\.com\/)?(\/?id)?(\w+)""")
urls = [
"http://vk.com/id132",
"https://vk.com/id451",
"vk.com/id100",
"/id832",
"id194",
"38",
"vkcom/id123",
"google.com/id234980",
"/idQWERTY"
]
for url in urls:
result = reg.match(url)
aId = int(result.group(4) if result else -1)
print("'{0}' -> {1}".format(url, aId))
OUTPUT:
'http://vk.com/id132' -> 132
'https://vk.com/id451' -> 451
'vk.com/id100' -> 100
'/id832' -> 832
'id194' -> 194
'38' -> 38
'vkcom/id123' -> -1
'google.com/id234980' -> -1
'/idQWERTY' -> -1