una scraping pagina hacer extraer español datos con como python macos scrapy pip

scraping - Mac OS X El Capitan-Scrapy/Python ImportError: no se puede importar el nombre xmlrpc_client



extraer datos de una pagina web python (4)

Estoy tratando de usar Scrapy en Mac OS X El Capitan. Tengo zsh instalado y he intentado todo lo que pude encontrar en línea para solucionar este problema. También miré a Scrapy throws ImportError: ¡no puedo importar el nombre xmlrpc_client y no pude resolver mi problema!

Python instalado mediante brew y agregado "pip install scrapy":

➜ DriverEBV which python /usr/local/bin/python

Mi .zshrc tiene la siguiente línea:

export PATH=/usr/local/bin:$PATH export PYTHONPATH="/Library/Python/2.7/site-packages"

Este es el error que obtengo:

➜ DriverEBV scrapy runspider DriverEBV.py Traceback (most recent call last): File "/usr/local/bin/scrapy", line 7, in <module> from scrapy.cmdline import execute File "/Library/Python/2.7/site-packages/scrapy/__init__.py", line 48, in <module> from scrapy.spiders import Spider File "/Library/Python/2.7/site-packages/scrapy/spiders/__init__.py", line 10, in <module> from scrapy.http import Request File "/Library/Python/2.7/site-packages/scrapy/http/__init__.py", line 12, in <module> from scrapy.http.request.rpc import XmlRpcRequest File "/Library/Python/2.7/site-packages/scrapy/http/request/rpc.py", line 7, in <module> from six.moves import xmlrpc_client as xmlrpclib ImportError: cannot import name xmlrpc_client

Cuando ejecuto "pip install scrapy" ahora esto es lo que veo:

➜ DriverEBV pip install scrapy Requirement already satisfied (use --upgrade to upgrade): scrapy in /Library/Python/2.7/site-packages Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.8.0 in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): lxml in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): service-identity in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.7 in /usr/local/lib/python2.7/site-packages (from pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->scrapy) Requirement already satisfied (use --upgrade to upgrade): characteristic>=14.0.0 in /Library/Python/2.7/site-packages (from service-identity->scrapy) Requirement already satisfied (use --upgrade to upgrade): pyasn1-modules in /Library/Python/2.7/site-packages (from service-identity->scrapy) Requirement already satisfied (use --upgrade to upgrade): pyasn1 in /Library/Python/2.7/site-packages (from service-identity->scrapy) Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): enum34 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): ipaddress in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): cffi>=1.1.0 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy) Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python2.7/site-packages (from cffi>=1.1.0->cryptography>=0.7->pyOpenSSL->scrape)

¿Alguien capaz de ayudarme?


Lo que me ayudó fue desinstalar Six and Scrapy y luego instalarlo de nuevo :

pip uninstall six pip uninstall scrapy pip install six pip install scrapy

Ejecutar con sudo si es necesario.

O bien, también puede intentar actualizar seis y scrapy:

pip install --upgrade scrapy pip install --upgrade six


No he tenido más que dolor en las bibliotecas de Python del sistema Mac OS X instaladas en el directorio /Library/Python . Lo que funcionó bien para mí es una combinación de MacPorts y virtualenv:

  1. Instalar MacPorts

  2. Instale Python, pip y virtualenv desde MacPorts:

    /opt/local/bin/port install python27 /opt/local/bin/port install py27-pip /opt/local/bin/port install py27-virtualenv

  3. Configuración virtualenv:

    /opt/local/bin/virtualenv-2.7 myenv

  4. Activa virtualenv (¡no olvides el punto!)

    . myenv/bin/activate

  5. Instalar scrapy

    pip install scrapy

De esta forma, las bibliotecas de Python del sistema permanecen intactas y puede instalar los paquetes que desee sin tener que eliminar o actualizar los paquetes existentes.


Creo que la mejor solución para OS X debería ser "No usar Python del sistema". Hará la vida más fácil. Este enlace muestra cómo hacer esto.

Hay un problema conocido que impide que pip actualice los paquetes del sistema. Esto debe abordarse para instalar con éxito Scrapy y sus dependencias. Aquí hay algunas soluciones propuestas:

(Recomendado) No use el sistema python, instale una nueva versión actualizada que no entre en conflicto con el resto de su sistema. Aquí le mostramos cómo hacerlo usando el administrador de paquetes homebrew:

  1. Instale homebrew siguiendo las instrucciones en http://brew.sh/
  2. Actualice su variable PATH para indicar que los paquetes homebrew deben usarse antes de los paquetes del sistema (Cambie .bashrc a .zshrc de forma correspondiente si está usando zsh como shell predeterminado):

echo "export PATH = / usr / local / bin: / usr / local / sbin: $ PATH" >> ~ / .bashrc

  1. Recargue .bashrc para asegurarse de que los cambios hayan tenido lugar:

fuente ~ / .bashrc

  1. Instalar Python:

brew instalar python

  1. Las versiones más recientes de python tienen un paquete con ellos, por lo que no será necesario instalarlo por separado. Si este no es el caso, actualice Python:

actualización de cerveza; brew actualización de python


Intente desinstalar mediante pip y luego vuelva a instalar usando el comando easy_install. Tuve el mismo problema con otro módulo de Python y hacerlo de esta manera me solucionó el problema en Mac OS X El Capitan.