1

这是不起作用的简单程序

from ghost import Ghost

ghost = Ghost(wait_timeout=40)
page, extra_resources = ghost.open("http://samsung.com/in/consumer/mobile-phone/mobile-phone/smartphone/")
ghost.wait_page_loaded()
n=2;
links=ghost.evaluate("alist=document.getElementsByTagName('a');alist")
print links

错误是:引发异常(timeout_message)

异常:无法加载请求的页面

程序有问题吗?

4

4 回答 4

3

似乎人们正在向您报告类似的问题,但没有得到任何解释(例如:https ://github.com/jeanphix/Ghost.py/issues/26 )

将评估行调整为以下内容,ghost.py 文档引用了该行:

links = gh.evaluate("""
                        var links = document.querySelectorAll("a");
                        var listRet = [];
                        for (var i=0; i<links.length; i++){
                            listRet.push(links[i].href);
                        }
                        listRet;
                    """)
于 2013-01-29T04:23:18.930 回答
0

我不得不在 ghost.py wait_for_page_loaded 函数中添加额外的逻辑:

    reTmp = str(resource.url)
    if "PyQt4" in reTmp:
        reTmp = str(reTmp).replace("PyQt4.QtCore.QUrl(u\'", "").replace("\')","")
    if url == reTmp:
        page = resource

PyQt 正在向 resource.url 添加愚蠢的垃圾,因此 url==resource.url 永远无法正确加载页面。

于 2013-11-17T03:21:28.190 回答
0

当我第一次获得 Ghost.py 时,我尝试的每个页面都出现了这个错误,我解决它的方法是我废弃了 PyQt 并安装了 PySide。无论如何,这对我来说是固定的。

于 2013-05-27T07:05:10.687 回答
0

ghost.py 需要 PySide(首选)或 PyQt Qt 绑定:

pip install pyside
pip install ghost.py --pre

尝试安装 pyside 而不是 pyqt。这对我有用。

于 2015-08-31T03:40:24.433 回答