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を最初に入手したときに試したすべてのページでこのエラーが発生していました。それを解決する方法は、PyQtを廃棄し、代わりにPySideをインストールすることでした。とにかくそれは私のためにそれを修正しました。

于 2013-05-27T07:05:10.687 に答える
0

ghost.pywait_for_page_loadedfuncにロジックを追加する必要がありました。

    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には、PySide(推奨)またはPyQtQtバインディングのいずれかが必要です。

pip install pyside
pip install ghost.py --pre

pyqtの代わりにpysideをインストールしてみてください。この仕事は私のために。

于 2015-08-31T03:40:24.433 に答える