【发布时间】: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&#39;t stop this train. A global #GoProFamily met adversity with creativity, resilience, + unity. You...">