gpt4 book ai didi

python - 抓取youtube用户信息

转载 作者:行者123 更新时间:2023-12-01 06:10:22 25 4
gpt4 key购买 nike

我正在尝试抓取 YouTube 以检索有关一组用户(大约 200 人)的信息。我有兴趣寻找用户之间的关系:

  • 联系人
  • 订阅者
  • 订阅
  • 他们评论了哪些视频
  • 等等

我已设法通过以下来源获取联系信息:

import gdata.youtube
import gdata.youtube.service
from gdata.service import RequestError
from pub_author import KEY, NAME_REGEX
def get_details(name):
yt_service = gdata.youtube.service.YouTubeService()
yt_service.developer_key = KEY
contact_feed = yt_service.GetYouTubeContactFeed(username=name)
contacts = [ e.title.text for e in contact_feed.entry ]
return contacts

我似乎无法获得我需要的其他信息。 reference guide说我可以从 http://gdata.youtube.com/feeds/api/users/username/subscriptions?v=2 获取 XML feed (对于某些任意用户)。但是,如果我尝试获取其他用户的订阅,则会收到 403 错误并显示以下消息:

User must be logged in to access these subscriptions.

如果我使用 gdata API:

sub_feed = yt_service.GetYouTubeSubscriptionFeed(username=name)
sub = [ e.title.text for e in contact_feed.entry ]

然后我得到同样的错误。

如何在不登录的情况下获得这些订阅?应该是可以的,因为您无需登录 YouTube 网站即可访问此信息。

此外,似乎没有针对特定用户的订阅者的提要。这些信息可以通过 API 获得吗?

编辑

因此,这似乎无法通过 API 来完成。我必须以快速而肮脏的方式做到这一点:

for f in `cat users.txt`; do wget "www.youtube.com/profile?user=$f&view=subscriptions" --output-document subscriptions/$f.html; done

然后使用此脚本从下载的 HTML 文件中获取用户名:

"""Extract usernames from a Youtube profile using regex"""
import re
def main():
import sys
lines = open(sys.argv[1]).read().split('\n')
#
# The html files has two <a href="..."> tags for each user: once for an
# image thumbnail, and once for a text link.
#
users = set()
for l in lines:
match = re.search('<a href="/user/(?P<name>[^"]+)" onmousedown', l)
if match:
users.add(match.group('name'))
users = list(users)
users.sort()
print users
if __name__ == '__main__':
main()

最佳答案

为了在用户未登录的情况下访问用户的订阅源,用户必须选中其 Account Sharing settings 下的“订阅 channel ”复选框。 .

目前,没有直接的方法可以通过 gdata API 获取 channel 的订阅者。事实上,有一个突出的功能请求已经开放了 3 年多!请参阅Retrieving a list of a user's subscribers? .

关于python - 抓取youtube用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com