【问题标题】:How to scrape new YouTube videos from a specific channel first?如何先从特定频道抓取新的 YouTube 视频?
【发布时间】:2020-01-13 21:02:04
【问题描述】:

我有一个频道,我想尽快从中获取新的上传视频。最好的方法是什么?我知道的两个选项:

  1. 使用 YouTube API
  2. 直接通过url访问频道

使用选项 1,我需要调用 api 才能获取视频列表。由于有配额,我想我会用完我可以进行的 api 调用。我认为选项 2 是最好的选择,因为我可以根据需要随时调用 url。

是否首先通过 api 提供新视频?或者通过 url 访问的视频是否在不同时间提供给用户,具体取决于他们来自的地区?我自己构建了一个 url 刮板。我每分钟访问一次网址。仍然有人在我收到视频前 8 分钟收到了视频。我不明白为什么会这样。

【问题讨论】:

    标签: web-scraping youtube


    【解决方案1】:

    只是在 MadRay 所写的内容的基础上建立一点点,您可以使用此 URL 进行一些简单的字符串替换

    使用频道 ID:

    "https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw"
    

    使用频道名称:

    https://www.youtube.com/feeds/videos.xml?user=LinusTechTips
    

    冒昧为您解析。

    from bs4 import BeautifulSoup
    import requests
    
    url="https://www.youtube.com/feeds/videos.xml?user=LinusTechTips"
    html = requests.get(url)
    soup = BeautifulSoup(html.text, "lxml")
    
    for entry in soup.find_all("entry"):
        for title in entry.find_all("title"):
            print(title.text)
        for link in entry.find_all("link"):
            print(link["href"])
        for name in entry.find_all("name"):
            print(name.text)
        for pub in entry.find_all("published"):
            print(pub.text)
    

    回复:

    FINALLY Wireless Headphones that Sound GREAT
    https://www.youtube.com/watch?v=rei5vMQmD4Q
    Linus Tech Tips
    2020-01-30T20:04:37+00:00
    Don't give Apple your MONEY - Mac Pro Upgrade Adventure
    https://www.youtube.com/watch?v=zcLbSCinX3U
    Linus Tech Tips
    2020-01-29T19:59:56+00:00
    We got the Kick-Proof TV from China!
    https://www.youtube.com/watch?v=4eSADWuZskk
    Linus Tech Tips
    2020-01-28T19:46:09+00:00
    Everything went wrong... Water Cooled 8K Camera Final Test
    https://www.youtube.com/watch?v=OEUCNh5g-2I
    Linus Tech Tips
    2020-01-27T20:08:27+00:00
    I'm Returning my Mac Pro
    https://www.youtube.com/watch?v=mIB389tqzCI
    Linus Tech Tips
    2020-01-26T19:59:45+00:00
    The RGB HDMI cable ISN'T as dumb as you'd think...
    https://www.youtube.com/watch?v=nva6oPszm60
    Linus Tech Tips
    2020-01-25T20:06:23+00:00
    I am NOT Retiring... yet - WAN Show Jan 24, 2020
    https://www.youtube.com/watch?v=cxjhTVR_dJw
    Linus Tech Tips
    2020-01-25T02:29:50+00:00
    The Best VR Headset... got BETTER!?
    https://www.youtube.com/watch?v=AGScX_8plYw
    Linus Tech Tips
    2020-01-23T19:52:00+00:00
    I've been thinking of retiring.
    https://www.youtube.com/watch?v=hAsZCTL__lo
    Linus Tech Tips
    2020-01-23T06:35:25+00:00
    It’s time to upgrade your GPU - RX 5600 XT
    https://www.youtube.com/watch?v=rKn-vWDMkwQ
    Linus Tech Tips
    2020-01-22T19:59:36+00:00
    WE FINALLY DID IT!! - Water Cooling the 8K Camera!
    https://www.youtube.com/watch?v=imJ9QgOJHzY
    Linus Tech Tips
    2020-01-21T19:59:47+00:00
    We Water Cooled an SSD!!
    https://www.youtube.com/watch?v=lQmI5A27Iv8
    Linus Tech Tips
    2020-01-20T20:17:22+00:00
    Should you buy a $50 CPU??
    https://www.youtube.com/watch?v=JISJ_YTI9s0
    Linus Tech Tips
    2020-01-19T20:19:02+00:00
    Apple’s Pro Display XDR – A PC Guy’s Perspective
    https://www.youtube.com/watch?v=X089oYPc5Pg
    Linus Tech Tips
    2020-01-18T19:59:29+00:00
    The NSA is Giving Out It's Hacks for Free! - WAN Show Jan 17, 2020
    https://www.youtube.com/watch?v=af6FBA-n7eA
    Linus Tech Tips
    2020-01-18T03:00:04+00:00
    

    但是,请记住在您的请求中使用标头,并注意一次访问 YouTube 后端的次数过多,因为您的 IP 将被暂停 12 小时。祝你好运!

    【讨论】:

    • 什么是“太多”?一分钟一次好吗?
    • 一分钟一次就足够了。我想说的是每秒大约 12 到 16 个请求会让你感到紧张。现在,当您刚开始时,这似乎绰绰有余,但是当您进行大量数据收集时,您必须通过轮换代理发挥创意。玩得开心!
    【解决方案2】:

    您可以尝试感兴趣的频道的 RSS 提要。它包含带有 UTC 时间戳的新鲜视频(因此您提到的时区没有问题)。

    频道视频的 RSS 链接可以在频道页面的来源中找到。页面开源,搜索“rssUrl”:

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 2020-08-17
      • 1970-01-01
      • 2020-04-10
      • 2014-06-28
      • 2014-01-14
      相关资源
      最近更新 更多