使用loop(高效循环技术):从Python中的字符串中提取特定的url

2024-05-19 10:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

下面几行代码为我提供了特定播放列表的源代码,并将所有url存储在一个变量“newlink”中。我想写一个循环,可以通过这个字符串的网址和存储的那些说'/看?在Python中,数组[0]会给出第一个链接,数组[1]会给出第二个链接,依此类推。最好的办法是什么?你知道吗

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'))

Tags: fromimportyouurlget链接driverselenium
1条回答
网友
1楼 · 发布于 2024-05-19 10:30:10

此代码使用实际创建阵列的播放列表进行测试。你知道吗

import re
from selenium import webdriver
from bs4 import BeautifulSoup
import requests

#Asks which playlist you want downloaded
print ('Which playlist do you want to download?')
playlist = raw_input()

#Access my youtube playlists page
driver = webdriver.Chrome(executable_path='/usr/lib/chromium-browser/chromedriver')
driver.get("https://www.youtube.com/user/randomuser/playlists?sort=dd&view=1&shelf_id=0")

#Access the 'Favorites' playlist
if playlist == 'Favorites':
    driver.find_element_by_xpath('//a[contains(text(), "Favorites")]').click()
    newurl = driver.current_url

    requrl = requests.get(newurl)
    requrlcont = requrl.content
    links = []
    soup = BeautifulSoup(requrlcont, "html.parser")
    for link in soup.find_all('a'):
        #print("link " + str(link))
        if re.match("/watch\?v=", link.get('href')):
            links.append(link.get('href'))

    print links

输出

python pyprog.py 
Which playlist do you want to download?
Favorites
[u'/watch?v=fG9_AYzehJw&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=fG9_AYzehJw&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=fG9_AYzehJw&index=1&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=fG9_AYzehJw&index=1&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=MKfDwChOoHI&index=2&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=MKfDwChOoHI&index=2&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=JQTXawaAKNA&index=3&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=JQTXawaAKNA&index=3&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=dG8wsae-6tU&index=4&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=dG8wsae-6tU&index=4&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=9mcZdDCOeuE&index=5&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=9mcZdDCOeuE&index=5&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=lh0ZB9OD_fg&index=6&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=lh0ZB9OD_fg&index=6&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=NfLmCPfx_gY&index=7&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=NfLmCPfx_gY&index=7&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=FoQzWb_f1oA&index=8&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=FoQzWb_f1oA&index=8&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=l8rJ1WML60Y&index=9&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=l8rJ1WML60Y&index=9&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=9rCug1ANQdE&index=10&list=FLRMDL-xDn7xqDznwaQbUH6g', u'/watch?v=9rCug1ANQdE&index=10&list=FLRMDL-xDn7xqDznwaQbUH6g']

相关问题 更多 >

    热门问题