abgerufen werden. Ich wollte etwas schreiben, das mir die Videodauer eines Youtube-Links zurückgibt. So fand ich requests
und lxml
und begann nach Guide.Die Dauer des Youtube-Videos konnte nicht mit xpath
Hier ist das Setup:
import requests
from lxml import html
url = 'https://www.youtube.com/watch?v=EN8fNb6uhns'
page = requests.get(url)
tree = html.fromstring(page.content)
Dann versuche ich, und verwenden XPath die Dauer zu erhalten, aber es funktioniert nicht. Versuchen, die Dauer zu erhalten:
tree.xpath('//span[@class="ytp-time-duration"]/text()')
gibt eine leere Liste zurück. Aber wenn ich versuche, und bekommen den Titel (als Test) mit:
tree.xpath('//h1[@class="watch-title-container"]/span/text()')
es funktioniert. Wenn ich inspizieren verwenden, um die XPath der Dauer Element nichts zu kopieren zurückgegeben:
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]')
Wenn ich das Gleiche tun für den Titel wieder funktioniert.
Was ist los?
Eine Lösung für Ihr Problem eine Maden Browser oder webkit wie PhantomJS sein könnte - die JS ausführen kann. –