2016-07-29 13 views
0

Ich möchte Video Name dieser link kratzen wie es ist "Wahnsinnige Frau geht verrückt auf Guy, der nur eine Rückerstattung will".Kratzen Überschrift eines Videos mit Selen Python3

Der Code im Web ist:

<span id="eow-title" class="watch-title" dir="ltr" title="Insane Woman Goes Crazy On Guy Who Just Wants A Refund"> 
Insane Woman Goes Crazy On Guy Who Just Wants A Refund 

ich auf diese Weise tue:

browser = webdriver.Firefox() 
browser.get("https://www.youtube.com/watch?v=POk-uOQSJVk") 
head = browser.find_elements_by_class_name('watch-title') 
print(head.text) 

Es wird aufgefordert, wie:

AttributeError: 'list' object has no attribute 'text'

gibt es irgendwas falsch?

Antwort

0

Zuerst find_elements_by_class_name() methodgibt eine Liste von WebElement s zurück, während Sie eine einzige benötigen. Außerdem müssen Sie let the page load until the desired element is present:

from selenium import webdriver 

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 


browser = webdriver.Firefox() 
browser.get("https://www.youtube.com/watch?v=POk-uOQSJVk") 

# wait for the presence of the video title 
element = WebDriverWait(browser, 10).until(
    EC.presence_of_element_located((By.ID, "eow-title")) 
) 
print(element.text) 

browser.close() 

Drucke:

Insane Woman Goes Crazy On Guy Who Just Wants A Refund 
+0

Wow .. Booommm ... erreicht dear ... 3 Minuten links für die Annahme der Antwort. – user6575792

+0

funktioniert es auch. 'head = browser.find_elements_by_class_name ('watch-title') für Graben im Kopf: print (ditch.text)' – user6575792