HTMLには、canonical link elementと呼ばれるものがあります。これは、別のページの複製であるページに置く要素であり、その要素はそのコンテンツの正規または「マスター」コピーを指しています。
https://youtube.com/c/Rsmuk1のソースを表示し、「標準」を検索すると、プライマリチャネルページを指す要素が見つかります。
<link rel="canonical" href="https://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNyw">
したがって、選択した言語でページを要求し、その要素を解析することで長いURLを取得できます。ここでは、BeautifulSoup
とrequests
from bs4 import BeautifulSoup
import requests
document = requests.get('https://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNyw')
soup = BeautifulSoup(document.content, "lxml")
links = soup.findAll('link', rel='canonical')
for link in links:
print(link['href'])
# Prints: https://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNyw
を使ってPython 3の例では、その形式を見ていないのです。あなたは実例を持っていますか? – johnh10
これは良い例です。 https://www.youtube.com/c/Rsmuk1 – Shadi
奇数そのチャンネルの実際のURLはhttps://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNywです。/ c/Rsmuk1はどこにありますか? – johnh10