python pyqt web-crawler ghost.py

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