Cómo instalar Scrapy en Ubuntu 20.04 LTS

1 mar 2021 3 min di lettura
Cómo instalar Scrapy en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Scrapy es un marco de rastreo web de código abierto escrito en Python. Creado originalmente para web scraping, también se puede utilizar para extraer datos utilizando API o como un rastreador web de propósito general.

Scrapy funciona en Python 3.5 o posterior con CPython (implementación predeterminada de Python) y PyPy (comenzando con PyPy 5.9).

En esta guía, le mostraremos cómo crear y ejecutar una araña web con Scrapy en su servidor Ubuntu 20.04 LTS Focal Fossa para extraer información de las páginas web mediante el uso de diferentes técnicas.

Si desea instalar Scrapy en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Utilice un entorno virtual (recomendado)

Recomendamos instalar Scrapy dentro de un entorno virtual en todas las plataformas.

Los paquetes de Python se pueden instalar globalmente (es decir, en todo el sistema) o en el espacio de usuario. No se recomienda instalar el sistema Scrapy al ras.

En su lugar, le recomendamos que instale Scrapy en un entorno virtual. Los entornos virtuales le permiten no entrar en conflicto con los paquetes del sistema Python ya instalados (que podrían romper algunas de las herramientas y scripts del sistema) y aún así instalar paquetes normalmente con pip (sin sudo y similares).

Para obtener más información, lea: Entornos y paquetes virtuales.

Instalar Scrapy en Ubuntu

Scrapy se prueba actualmente con versiones bastante recientes de lxml, twisted y pyOpenSSL y es compatible con distribuciones recientes de Ubuntu. Pero también debería admitir versiones anteriores de Ubuntu, como Ubuntu 14.04, aunque con posibles problemas con las conexiones TLS.

python-scrapy

Para instalar Scrapy en sistemas Ubuntu (o basados en Ubuntu), necesita instalar estas dependencias:

sudo apt-get install python3 python3-dev python3-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
  • Los python3-dev, zlib1g-dev, libxml2-dev y libxslt1-dev son necesarios para lxml.
  • Los libssl-dev y libffi-dev son necesarios para la cryptography.
pippip3pythonpython3
pip3 install scrapy

Instalar Scrapy con conda

Si está utilizando Anaconda o Miniconda, puede instalar el paquete desde el canal conda-forge, que tiene paquetes actualizados para Linux, Windows y macOS.

conda install -c conda-forge scrapy

Alternativamente, si ya está familiarizado con la instalación de paquetes de Python, puede instalar Scrapy y sus dependencias de PyPI con:

pip3 install Scrapy
pippip3pythonpython3

Crea un nuevo proyecto con Scrapy

Veamos cómo usar Scrapy, comencemos creando un nuevo proyecto con el siguiente comando de terminal:

sudo scrapy startproject esempio

Ingrese la carpeta recién creada con el comando cd:

cd esempio

El directorio del proyecto recién creado tendrá la siguiente estructura:

esempio/scrapy.cfg # file di configurazione per il deploy

 esempio/# module del progetto Python

 __init__.py

 items.py

 middlewares.py

 pipelines.py

 settings.py # Impostazioni del progetto

 spiders/__init__.py

Utilice Scrapy

Scrapy te permite descargar el contenido HTML de las páginas web y extraer información de ellas mediante el uso de diferentes técnicas, como los selectores CSS. Para facilitar este proceso, Scrapy proporciona un "shell" para probar la extrapolación de información en tiempo real.

Veamos un ejemplo rápido de cómo ver el último artículo de reddit.com:

sudo scrapy shell "reddit.com"

Debería recibir un resultado similar al siguiente:

...
 [s] Available Scrapy objects:
 [s] scrapy scrapy module (contains scrapy.Request, scrapy.Selector, etc)
 [s] crawler <scrapy.crawler.Crawler object at 0x7fd0494600a0>
 [s] item {}
 [s] request <GET http://reddit.com>
 [s] response <200 https://www.reddit.com/>
 [s] settings <scrapy.settings.Settings object at 0x7fd04945dd30>
 [s] spider <DefaultSpider 'default' at 0x7fd048fc91f0>
 [s] Useful shortcuts:
 [s] fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed)
 [s] fetch(req) Fetch a scrapy.Request and update local objects
 [s] shelp() Shell help (print this help)
 [s] view(response) View response in a browser
 >>>

Para obtener el título de la primera publicación puedes usar el article h3::text selector de texto:

response.css('article h3::text')[0].get()

Debería mostrar el título del último artículo de reddit. Luego salga del shell con el siguiente comando:

exit()

Conclusión

En este tutorial, hemos visto cómo instalar y usar el marco de rastreo web Scrapy en Ubuntu 20.04 LTS Focal Fossa.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.