Die folgenden Codezeilen gibt mir den Quellcode für eine bestimmte Wiedergabeliste und speichert alle URLs in einer Variablen "newlink". Ich möchte eine Schleife schreiben, die durch diese URL-Kette gehen kann und die, die '/ watch? V =' sagen, in ein Array in Python speichern, so dass Array [0] mir den ersten Link, array [1] geben würde Sekunde und so weiter. Was wäre der beste Weg, dies zu tun?Verwenden von Schleife (Efficient-Looping-Technik): Um bestimmte URLs aus meiner Zeichenfolge in Python zu extrahieren
import re
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import requests
#Asks which playlist you want downloaded
print ('Which playlist do you want to download?')
playlist = input()
#Access my youtube playlists page
driver = webdriver.Chrome(executable_path='E:\chromedriver\chromedriver.exe')
driver.get("https://www.youtube.com/user/randomuser/playlists?sort=dd&view=1&shelf_id=0")
#Access the 'classic' playlist
if playlist == 'classic':
driver.find_element_by_xpath('//a[contains(text(), "classic")]').click()
newurl = driver.current_url
requrl = requests.get(newurl)
requrlcont = requrl.content
soup = BeautifulSoup(requrlcont, "html.parser")
for link in soup.find_all('a'):
newlink = link.get('href'))
Sie können die letzten beiden Zeilen mit 'links = [link [ 'href'] für Link in soup.find_all ('a') ersetzen, wenn‚/ watch? V = 'in link.get (' href ',' ')] '. Oder setzen Sie einfach die 'if'-Anweisung in die Schleife. – Evert
Beachten Sie, dass Ihr aktueller Code jedesmal 'newlink' überschreibt: nur die letzte URL wird in' newlink' gespeichert. – Evert