【问题标题】:XPath get full text of Youtube Video description in Python?XPath 在 Python 中获取 Youtube 视频描述的全文?
【发布时间】:2021-01-21 22:04:52
【问题描述】:

我正在尝试使用 Xpath 和 lxml 获取给定 Youtube 视频的描述文本,但是它只返回描述的前几句话,然后是“...”。所以它缩短了它,我想知道我的 xpath 是否有问题,或者它是否总是这样?我还没有看到任何与此相关的线程。

from lxml import html
import requests
import urllib3

url = "https://www.youtube.com/watch?v=Baur2Ypgd60"

page=requests.get(url)     

tree = html.fromstring(page.text)
s=tree.xpath('//meta[@name="description"]/@content')
print(s)

这仅打印:[“2020 年最佳 ???? 今年面临挑战,但您无法阻止这列火车。全球#GoProFamily 以创造力、韧性和团结迎接逆境。你... "],

而不是描述的全文:[“2020 年最佳 ???? 今年面临挑战,但您无法阻止这列火车。全球#GoProFamily 以创造力、韧性和团结迎接逆境. 你永远不会忘记你的激情,即使这意味着在你的客厅里练习它们。我们很感激,受到启发,+ 对未来充满渴望。”]

这似乎很容易解决,但我对 XPath 的东西不太熟悉,在任何地方都找不到任何关于这个的东西。谢谢!

【问题讨论】:

  • 如果 XPath 正确,则可能是另一个问题,youtube 一次加载的页面未满。也许标题是通过 javascript 加载的。要查看这是否是问题所在,请尝试通过请求将页面写入文件。然后你可以手动检查标题是否加载,如果是,这是一个 XPath 问题,如果不是,你必须使用selenium
  • @kabr8 这是一个 XPath 问题,因为我之前也用 selenium 尝试过,结果是一样的。
  • 奇怪,因为当我这样做时,它会说<meta name="description" content="The Best of 2020 ???? This year had its challenges—but you can't stop this train. A global #GoProFamily met adversity with creativity, resilience, + unity. You...">

标签: python xpath youtube lxml


【解决方案1】:

问题是在元描述标签中只包含

The Best of 2020 ? This year had its challenges—but you can't stop this train. A global #GoProFamily met adversity with creativity, resilience, + unity. You...

但是你想要得到的是这个div:

<div id="description" slot="content" class="style-scope ytd-video-secondary-info-renderer"></div>

这里面有洞的视频说明。

但获取描述的聪明方法是使用Youtube API

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多