如何使用带有 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/Scrapy 等普通抓取方法上使用了多处理,但是当我使用 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 评论,每次询问“授权此应用程序”