python - raspado de la pantalla usando Ghost.py
pyqt web-crawler (4)
Parece que las personas están reportando problemas similares a los suyos, sin obtener ninguna explicación (por ejemplo: https://github.com/jeanphix/Ghost.py/issues/26 )
Ajuste la línea de evaluación a lo siguiente, a la que hace referencia una documentación de 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;
""")
Aquí está el programa simple que no funciona
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
ERROR IS: raise Exception (timeout_message)
Excepción: no se puede cargar la página solicitada
¿Hay algún problema con el programa?
Estaba obteniendo este error con cada página que probé la primera vez que recibí Ghost.py, la forma en que resolví fue descartar PyQt e instalar PySide. Eso lo solucionó para mí de todos modos.
Tuve que agregar lógica extra en el ghost.py wait_for_page_loaded func:
reTmp = str(resource.url)
if "PyQt4" in reTmp:
reTmp = str(reTmp).replace("PyQt4.QtCore.QUrl(u/'", "").replace("/')","")
if url == reTmp:
page = resource
PyQt estaba agregando basura estúpida a resource.url, por lo que url == resource.url nunca podría cargar una página correctamente.
ghost.py requiere enlaces PySide (preferido) o PyQt Qt:
pip install pyside
pip install ghost.py --pre
intente instalar pyside en lugar de pyqt. este trabajo para mi