0

我正在尝试从 Youtube 下载 Android 开发教程的完整播放列表。所以我使用savefrom来生成播放列表以供下载。但问题是我在那个播放列表中有这么多视频。因此,我决定编写一个 python 脚本来简化这项工作。但问题是它使用 Java Script 生成链接,所以我无法使用 javascript() 获取生成的链接

示例: http ://ssyoutube.com/watch?v= AfleuRtrJoA 生成下载链接需要 5 秒。

我只想在浏览5 秒后获取页面源。

对于这种工作,我找到了一个名为selenium的好包。

import time
from selenium import webdriver

def savefromnotnet(url):
    browser = webdriver.Firefox() # Get local session of firefox
    browser.get(url) # Load page
    time.sleep(5) # Let the page load, will be added to the API
    return browser.page_source()

source = savefromnotnet("http://ssyoutube.com/watch?v=AfleuRtrJoA")

savefromnotnet函数打开的 Firefox,它将请求 url,到此为止,一切正常。但是当我想获取页面源browser.page_source()时,它会显示以下错误。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 523, in runfile
    execfile(filename, namespace)
  File "C:\Users\BK\Desktop\Working Folder\Python Temp\temp.py", line 10, in <module>
    source = savefromnotnet("http://ssyoutube.com/watch?v=AfleuRtrJoA")
  File "C:\Users\BK\Desktop\Working Folder\Python Temp\temp.py", line 8, in savefromnotnet
    return browser.page_source()
TypeError: 'unicode' object is not callable
4

2 回答 2

2

以下行发生错误。

return browser.page_source()

我认为括号不需要。

return browser.page_source
于 2013-07-06T01:23:31.110 回答
0

我想不是 !

pcode = wdriver.page_source()

是绝对正确的电话。通过在 python ide 中自动完成。

我也有同样的问题。看起来我们需要像经典的 ANSI 一样对页面源文本变量进行编码

于 2014-01-30T08:36:07.987 回答