2017-11-09 11 views
1

youtube.com/channel/xyzやyoutube.com/user/xyzのようなURLがある場合は、YouTubeチャンネルやユーザー情報をリクエストするのはかなり簡単ですあなたはURLからユーザー名/チャンネルIDを取り除くことができるからです。しかし、私は問題の任意の種類のリソースにhttps://youtube.com/c/xyzのようなURLを関連付けている。https://youtube.com/c/xyzのようなYouTubeチャンネルを解決する

ユーザーでもチャネルでもないようですか?

+0

を使ってPython 3の例では、その形式を見ていないのです。あなたは実例を持っていますか? – johnh10

+0

これは良い例です。 https://www.youtube.com/c/Rsmuk1 – Shadi

+0

奇数そのチャンネルの実際のURLはhttps://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNywです。/ c/Rsmuk1はどこにありますか? – johnh10

答えて

1

HTMLには、canonical link elementと呼ばれるものがあります。これは、別のページの複製であるページに置く要素であり、その要素はそのコンテンツの正規または「マスター」コピーを指しています。

https://youtube.com/c/Rsmuk1のソースを表示し、「標準」を検索すると、プライマリチャネルページを指す要素が見つかります。

<link rel="canonical" href="https://www.youtube.com/channel/UCMi7-BZZX9x8CAhE-5juNyw"> 

したがって、選択した言語でページを要求し、その要素を解析することで長いURLを取得できます。ここでは、BeautifulSouprequests

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 
1

大丈夫です。 YouTubeから手動でリクエストできるのはcustom urlですuserNameまたはchannelIDとの接続はありません。

現在のところ、APIを使用してカスタムURLから情報を取得する方法はありません。代わりに、urlをリクエストして、実際のchannelIDのメタタグを調べる必要があります。これを行うにはPHP scriptがあります。希望が役立ちます。

関連する問題