我想寫一些東西,它會返回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。 –