如何使用带有 YouTube API 的 Python 多处理进行抓取 [关闭]

Posted

技术标签:

【中文标题】如何使用带有 YouTube API 的 Python 多处理进行抓取 [关闭]【英文标题】:How to use Python Multiprocessing with YouTube API for crawling [closed] 【发布时间】:2020-05-28 16:04:08 【问题描述】:

我仍然是 python 的新手,现在使用多处理对我来说是一项重要的工作。

所以我的问题是,如何在使用多处理的同时使用 YouTube API 加快抓取 YouTube 的 cmets 部分?

这个项目是在有限的时间内为他们的 cmets 抓取几个 100000++ 的视频。我知道在 BeautifulSoup/Scr​​apy 等普通抓取方法上使用了多处理,但是当我使用 YouTube API 时呢?

如果我使用 YouTube API(需要 API 密钥)来抓取数据,多处理是否能够使用多个密钥来完成这项工作,还是会一遍又一遍地使用同一个密钥来完成不同的任务?

为简化起见,是否可以在代码中使用使用 API 密钥multiprocessing,而不是不需要 API 的普通抓取方法钥匙?

有人知道吗?

【问题讨论】:

“这个项目是在有限的时间内为他们的 cmets 抓取几个 100000++ 的视频。” - 不可能,因为在一些请求后你会得到验证码. 这太宽泛/模糊了。请参阅:tour、How to Ask、help center。 @PedroLobito 我明白了。所以它还没有完成,可能甚至不可能。 @AMC 对您来说有什么模糊之处?如何更改它以使您更好地理解? @AMC 我认为我们走错了路,伙计。没有暗示任何事情,我也没有侮辱你的智慧。如果它让你有这种感觉,我很抱歉。祝你有美好的一天:) 【参考方案1】:

这不会直接回答您的问题,但我建议您查看 YouTube API 配额:

https://developers.google.com/youtube/v3/getting-started#calculating-quota-usage

默认情况下,您的项目每天的配额仅为 10,000 个单位,检索 cmets 每条评论的成本在 1 到 5 个单位之间(如果您想要它们附加到的视频数据,请为每个视频再添加 21 个单位)。实际上,您每天只能通过 API 检索 2000 个 cmets,而无需提出配额增加请求,这可能需要数周时间。

编辑:对于给定的请求,Google 会以您选择的语言为您填充代码。我建议在此处填写您的请求表格,并以此为起点:https://developers.google.com/youtube/v3/docs/comments/list (点击“Populate APIs Explorer” -> “See Code Samples” -> 在左侧输入更多信息)

【讨论】:

是的,我查看了文档并了解配额限制。显然,我面临的挑战是在有限的时间内使用 YouTube API 完成对数千个视频的抓取,并在此基础上使用多处理,我只是不确定这是否可行,或者这是否是不可能的壮举。无论如何,感谢您的输入。如果您知道更多,请在此处回复。谢谢 你可以做到。我一直都这样做。它被称为“分布式爬行”。但是,您不能通过他们的 API。在视频 4 之后,仅配额就会让你窒息。你必须刮掉它。如果您尝试使用具有不同 API 密钥的多个项目来破坏报价,您的帐户将被暂停。

以上是关于如何使用带有 YouTube API 的 Python 多处理进行抓取 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 YouTube API 播放带有开始和结束时间的 YouTube 视频

使用带有 python 的 youtube api 发布 youtube 评论,每次询问“授权此应用程序”

如何使用 YouTube API V3?

带有类别的 Youtube api

使用 YouTube API 从带有 JSON 提要的视频中获取所有评论

带有 API v3 的 Youtube 视频标题没有 API 密钥?