Ich verwende Selen-Bibliothek für Python und Chrom-Browser.python-selenium- klicken Sie auf entstehenden Link
Ich brauche einen Link aus der URL klicken:
http://www.youtube-mp3.org/
Die Idee ist, eine Liste von Videos zu MP3-Dateien in einem frühen Code konvertierten zum Download bereit. Mein Skript ist:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
url2='http://www.youtube-mp3.org/'
chromedriver = 'C:\\exp\\chromedriver.exe' #where you have the file
browser = webdriver.Chrome(chromedriver)
browser.get(url2)
direc = browser.find_element_by_id("youtube-url")
direc.clear()
direc.send_keys("https://www.youtube.com/watch?v=nYh-n7EOtMA") #an example url
browser.find_element_by_id("btns").click()
Bis hier ist alles in Ordnung.
Jetzt muss ich den Download-Link drücken, der nach der Konvertierung des Videos erscheint.
Die HTML für diesen Teil ist:
<div id="dl_link" style="display: block;">
<a href="/get?video_id=nYh-n7EOtMA&h=-1&r=-1.1" style="display:none"><b>Download</b></a>
<a href="/get?video_id=nYh-n7EOtMA&ts_create=1463533555&r=MTg2LjYwLjE2MS4yMTE%3D&h2=5ad90182ae65fea567f844c3b6a933aa&s=145334"><b>Download</b></a><a href="/get?video_id=nYh-n7EOtMA&h=-1&r=-1.1" style="display:none">
<b>Download</b>
</a></div>
Aber ich kann es nur sehen, wenn ich „inspizieren Objekt“ wählen, denn wenn ich „Ansicht Quellcode“ wählen (nachdem ich die URL eingefügt und die Video und Link erscheinen), da ist nichts drin.
Ich habe versucht, mit:
browser.find_element_by_partial_link_text("create").click()
Aber ich habe einen Fehler:
NoSuchElementException: Message: no such element
und auch mit:
browser.find_element_by_name("dl_link").click()
Fehler:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"dl_link"}
und auch mit:
browser.find_element_by_id("dl_link").click()
und bekam:
ElementNotVisibleException: Message: element not visible
Also, meine Fragen sind:
- , warum ich nicht den HTML-Skript für den Download-Link sehen kann, wenn ich drücken Quellcode ansehen?
- ist es möglich, den Prozess (Herunterladen der MP3-Datei) mit Python abzuschließen?
- macht die Tatsache, dass die Webseite Java-Skripte enthält, mit dem Problem zu tun?
- Gibt es eine andere Bibliothek, um dies zu tun?
danke.
Ändern zu diesem 'browser.find_element_by_name (" dl_link "). click()' soll ideal funktionieren. – nullpointer
@nullpointer, ich habe das schon einmal probiert und habe keine Die Fehlermeldung lautet: Nachricht: kein solches Element: Element kann nicht gefunden werden: {"method": "name", "selector": "dl_link"} – GabyLP