【问题标题】:Using urllib to Download使用 urllib 下载
【发布时间】:2013-05-09 09:16:06
【问题描述】:

我正在创建一个下载音乐的程序。现在其中一些在 selenium 中,但我试图慢慢地 s=将其完全更改为 urllib,但我停留在下载部分。当我运行它时它工作正常,但我没有得到下载的歌曲

这是我的代码:

import urllib2, urllib, urllister
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

raw_i=raw_input("Search: ")
x = urllib.quote_plus(raw_i)

site1 = urllib2.urlopen(' Youtube Search Link ')
y = site1.read()
parser = urllister.URLLister()
parser.feed(y)

parser.close()


for url in parser.urls:
    if "watch?v=" in url: 
        v = url

        break


vid = ("youtube link %s"%v)

driver = webdriver.Chrome()
driver.get("Youtube to Mp3 link")


elem = driver.find_element_by_id("youtube-url")
elem.clear()
elem.send_keys(vid)
elem.send_keys(Keys.RETURN)
time.sleep(5)
download = driver.page_source

parser = urllister.URLLister()
parser.feed(download)
parser.close
driver.quit()

for url in parser.urls:
    if "/get?video_id" in url: 
        down = url

download_url = ("Download link")
urllib.urlretrieve(download_url)

就像我说的,我没有收到错误消息,但我找不到下载的歌曲

【问题讨论】:

  • urlretreive() 接受文件名作为第二个参数。 Youtube 的 API 应该允许在没有网络抓取的情况下获取 url。
  • 是的,我最终这样做了,我对此进行了调查,谢谢!

标签: python selenium download urllib2 urllib


【解决方案1】:

Documentation中所说:

urllib.urlretrieve 返回一个元组(文件名,标题),其中文件名是本地文件 可以找到对象的名称

所以在你的代码末尾试试这个:

download_url = ("Download link")
filename, headers = urllib.urlretrieve(download_url)
print filename

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 2011-06-13
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多