我想写一些东西,它会返回YouTube视频链接的视频持续时间。所以我找到了requests
和lxml
,并开始遵循this指南。未能获得使用xpath的YouTube视频的持续时间
这里的设置:
import requests
from lxml import html
url = 'https://www.youtube.com/watch?v=EN8fNb6uhns'
page = requests.get(url)
tree = html.fromstring(page.content)
然后我尝试使用XPath来获取持续时间,但它不工作。试图获得持续时间:
tree.xpath('//span[@class="ytp-time-duration"]/text()')
返回一个空列表。但是,当我尝试获得标题(作为测试):
tree.xpath('//h1[@class="watch-title-container"]/span/text()')
它的工作原理。当我使用检查复制的持续时间元素没有的XPath是返回:
tree.xpath('/html/body/div[2]/div[4]/div/div[4]/div[2]/div[2]/div/div[24]/div[2]/div[1]/div/span[3]')
当我做标题的相同的再次工作。
这是怎么回事?
一种解决方案可能是一个无头的浏览器的WebKit或类似PhantomJS - 可以执行JS。 –