使用 BeautifulSoup 获取 youtube 描述?
Use BeautifulSoup to get youtube description?
我正在尝试创建一个 python 函数,它将 youtube url 视频 link 和 return 描述(如果存在)作为将所有非 ASCII 字符替换为 space 的字符串。不过,我在让它工作时遇到了一些麻烦。
任何人都有任何想法。我认为 <p id="eow-description" ></p>
在所有视频中都用于保存描述,但我不知道如何将它 return 只是一个完整的字符串,格式化我们如何看待它而不是它在页面源。
我正在使用这 2 个视频来测试是否有说明。
https://www.youtube.com/watch?v=9bZkp7q19f0
https://www.youtube.com/watch?v=eHvccEXfacM
video_source = requests.get("https://www.youtube.com/watch?v=9bZkp7q19f0")
parsed_soup = BeautifulSoup(video_source.content)
print parsed_soup.find_all("p", {"id": "eow-description"})[0]
我不知道如何将其格式化为字符串。
Beautifulsoup 很慢,最好的方法是按照评论中的建议使用 Google's YouTube API 。就简单多了:
def PrintEntryDetails(entry):
print 'Video description: %s' % entry.media.description.text
不是你想要的,告诉我
你最好使用 YouTube Data API,有一个 list
端点可以 return 一个或多个 ID 的详细信息API呼叫.
为自己准备一个 API 密钥(参见 instructions, for a script on your on computer use a server API key) and the Python client libraries;使用 pip install --upgrade google-api-python-client
安装这些密钥。
然后列表描述可以用:
from apiclient.discovery import build
DEVELOPER_KEY = '<API key provided by Google>'
youtube = build('youtube', 'v3', developerKey=DEVELOPER_KEY)
ids = '9bZkp7q19f0,eHvccEXfacM'
results = youtube.videos().list(id=ids, part='snippet').execute()
for result in results.get('items', []):
print result['id']
print result['snippet']['description']
print '-----'
演示:
>>> from apiclient.discovery import build
>>> DEVELOPER_KEY = '<get your own key here>'
>>> youtube = build('youtube', 'v3', developerKey=DEVELOPER_KEY)
>>> ids = '9bZkp7q19f0,eHvccEXfacM'
>>> results = youtube.videos().list(id=ids, part='snippet').execute()
>>> for result in results.get('items', []):
... print result['id']
... print result['snippet']['description']
... print '-----'
...
9bZkp7q19f0
▶ Watch HANGOVER feat. Snoop Dogg M/V @
http://youtu.be/HkMNOlYcpHg
PSY - Gangnam Style (강남스타일)
▶ Available on iTunes: http://Smarturl.it/psygangnam
▶ Official PSY Online Store US & International : http://psy.shop.bravadousa.com/
▶ About PSY from YG Ent.: http://smarturl.it/YGfamilyAboutPSY
▶ PSY's Products on eBay: http://stores.ebay.com/ygentertainment
▶ YG-eShop: http://www.ygeshop.com
For More Information @
http://www.facebook.com/officialpsy
http://twitter.com/psy_oppa
http://twitter.com/ygent_official
http://me2day.net/psyfive
http://www.psypark.com
App Store: http://goo.gl/l9TU6
Google Play: http://goo.gl/UiEn1
© YG Entertainment Inc. All rights reserved.
-----
eHvccEXfacM
-----
我正在尝试创建一个 python 函数,它将 youtube url 视频 link 和 return 描述(如果存在)作为将所有非 ASCII 字符替换为 space 的字符串。不过,我在让它工作时遇到了一些麻烦。
任何人都有任何想法。我认为 <p id="eow-description" ></p>
在所有视频中都用于保存描述,但我不知道如何将它 return 只是一个完整的字符串,格式化我们如何看待它而不是它在页面源。
我正在使用这 2 个视频来测试是否有说明。
https://www.youtube.com/watch?v=9bZkp7q19f0
https://www.youtube.com/watch?v=eHvccEXfacM
video_source = requests.get("https://www.youtube.com/watch?v=9bZkp7q19f0")
parsed_soup = BeautifulSoup(video_source.content)
print parsed_soup.find_all("p", {"id": "eow-description"})[0]
我不知道如何将其格式化为字符串。
Beautifulsoup 很慢,最好的方法是按照评论中的建议使用 Google's YouTube API 。就简单多了:
def PrintEntryDetails(entry):
print 'Video description: %s' % entry.media.description.text
不是你想要的,告诉我
你最好使用 YouTube Data API,有一个 list
端点可以 return 一个或多个 ID 的详细信息API呼叫.
为自己准备一个 API 密钥(参见 instructions, for a script on your on computer use a server API key) and the Python client libraries;使用 pip install --upgrade google-api-python-client
安装这些密钥。
然后列表描述可以用:
from apiclient.discovery import build
DEVELOPER_KEY = '<API key provided by Google>'
youtube = build('youtube', 'v3', developerKey=DEVELOPER_KEY)
ids = '9bZkp7q19f0,eHvccEXfacM'
results = youtube.videos().list(id=ids, part='snippet').execute()
for result in results.get('items', []):
print result['id']
print result['snippet']['description']
print '-----'
演示:
>>> from apiclient.discovery import build
>>> DEVELOPER_KEY = '<get your own key here>'
>>> youtube = build('youtube', 'v3', developerKey=DEVELOPER_KEY)
>>> ids = '9bZkp7q19f0,eHvccEXfacM'
>>> results = youtube.videos().list(id=ids, part='snippet').execute()
>>> for result in results.get('items', []):
... print result['id']
... print result['snippet']['description']
... print '-----'
...
9bZkp7q19f0
▶ Watch HANGOVER feat. Snoop Dogg M/V @
http://youtu.be/HkMNOlYcpHg
PSY - Gangnam Style (강남스타일)
▶ Available on iTunes: http://Smarturl.it/psygangnam
▶ Official PSY Online Store US & International : http://psy.shop.bravadousa.com/
▶ About PSY from YG Ent.: http://smarturl.it/YGfamilyAboutPSY
▶ PSY's Products on eBay: http://stores.ebay.com/ygentertainment
▶ YG-eShop: http://www.ygeshop.com
For More Information @
http://www.facebook.com/officialpsy
http://twitter.com/psy_oppa
http://twitter.com/ygent_official
http://me2day.net/psyfive
http://www.psypark.com
App Store: http://goo.gl/l9TU6
Google Play: http://goo.gl/UiEn1
© YG Entertainment Inc. All rights reserved.
-----
eHvccEXfacM
-----