[Desarrollo de orugas] Basado en el combate real del proyecto, resumen de la experiencia desde el desarrollo hasta el despliegue

proceso de desarrollo

1. Desarrollo a través de IDE

Complemento de cromo

Conéctese en línea científicamente, luego vaya a la tienda de complementos y busque la instalación del IDE de selenio.

Complementos de Firefox

Si no tiene acceso a Internet, use el complemento de Firefox y busque selenium IDE para instalarlo.

desarrollar

Después de la instalación, abra el complemento y registre sus propias operaciones del navegador. Durante el proceso de grabación, se pueden eliminar algunas operaciones sin sentido, lo que puede hacer que el script de exportación sea más conciso.
Una vez completada la grabación en el paso anterior, exporte el script de grabación y seleccione python como idioma para obtener el código de script de python completo.
El python exportado por selenium IDE se puede usar directamente y se puede simplificar aún más, como eliminar las dependencias de pytest.
Más tarde, descubrirá que si se ejecutan varios rastreadores al mismo tiempo, Chrome consume mucha memoria cuando se ejecuta. Por lo tanto, considere desechar el selenio y los navegadores y acceda directamente a la API del sitio web de destino.

2. Desarrollado por cartero

El desarrollo de Postman es la esencia del desarrollo de API. Para ser agregado más tarde

3. desarrollo rudimentario

Para ser agregado

4. Agregar proxy

Sitio de compra del agente

Visitar el sitio web de destino con una gran cantidad de tráfico provocará la prohibición de IP. La solución temporal es esperar unos minutos antes de visitar. Una solución permanente es usar una ip proxy.
SmartProxy
es caro, pero muy fácil de usar

proceso de despliegue

El entorno de implementación es CentOS

1. Despliegue de pagoda

El uso de python en el entorno de la pagoda.

centOS viene con python 2.7, pero nuestro desarrollo se basa en python3. Después de que centOS instale la pagoda, use el siguiente comando
btpython -V
para encontrar que btpython es python 3.8, por lo que no es necesario instalar administradores de versiones de python como pyenv.

Instalar Chrome en centOS

  1. Modifique la fuente de yum
    Cree un nuevo archivo google-chrome.repo en el directorio /etc/yum.repos.d/ y agregue el siguiente contenido
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
  1. Es posible que la fuente oficial de Google instalada por yum
    yum -y install google-chrome-stable
    no esté disponible en China, lo que puede provocar una falla en la instalación o una falla en la actualización en China. Puede agregar los siguientes parámetros para instalar: 
    yum -y install google-chrome-stable --nogpgcheck
  2. Verifique la versión de Chrome e instale el controlador de cromo correspondiente
    google-chrome -v

Instalar el navegador Firefox en centOS

Se puede instalar directamente usando yum
yum install firefox

Instalar controladores web

  1. ChromeDriver
    Taobao espejo
    enlace oficial
  2. GeckoDriver es adecuado para el navegador Firefox
    Enlace Github
    Geckodriver y tabla de mapeo de versiones de Firefox
  3. SafariDriver (adecuado para el desarrollo de Mac)
    Safari tiene su propio servidor web, que no necesita instalarse por separado, pero debe encenderse. Menú/Desarrollo/Permitir depuración remota. menu/develop/Permitir automatización remota
    Todos los servidores web se colocan en la carpeta /usr/local/bin

Configurar un navegador sin cabeza

No se utilizará un navegador sin interfaz durante el desarrollo, pero se recomienda utilizar el modo sin interfaz después de la implementación en el servidor. El código de muestra para el modo sin cabeza es el siguiente

from selenium import webdriver

options = webdriver.ChromeOptions()   
# options = webdriver.FirefoxOptions()  
options.add_argument("--headless")   
options.add_argument("--no-sandbox")   
driver = webdriver.Chrome(options=options)   
driver.get("https://www.qq.com")   
driver.get_screenshot_as_file("test.png")   
driver.quit()

2. supervisión del supervisor

La razón por la que se usa el monitoreo del supervisor es que el rastreador siempre hará que el proceso finalice inesperadamente debido a varias razones.El uso del supervisor puede reiniciarse automáticamente cuando finaliza el proceso.

instalación de supervisor

  1. Instalación de supervisor debajo de la pagoda
    Se recomienda usar el complemento de supervisor de la pagoda, instalación tonta
  2. Instalación de supervisor bajo no pagoda
    pip install supervisor
  3. Instalación de supervisor en macOS
    brew install supervisor
    Después de instalar supervisor en mac, puede iniciar el navegador e ingresar
    http://localhost:9001
    para administrar visualmente los proyectos de supervisor

Inicio de la línea de comandos del supervisor

La visualización de pagoda es muy conveniente para usar el supervisor, pero cuando el proceso de monitoreo alcanza más de dos dígitos, lleva mucho tiempo iniciar manualmente cada proceso uno por uno. Por lo tanto, se recomienda utilizar la línea de comandos para iniciar y pausar.
El comando de línea de comando del supervisor es el siguiente

supervisorctl reload
supervisorctl stop all

La ruta de instalación del supervisor debajo de la pagoda es /www/server/panel/pyenv/bin/supervisorctl,
por lo que el comando anterior debe cambiarse a

# 查看版本
/www/server/panel/pyenv/bin/supervisord -v  
# 重新启动
/www/server/panel/pyenv/bin/supervisorctl reload
# 停止所有进程
/www/server/panel/pyenv/bin/supervisorctl stop all

supervisor escucha de eventos alarma de monitoreo

Una vez que se implementa el programa, siempre queremos saber cómo se está ejecutando, por ejemplo: cuántas veces el programa se cierra de forma anormal, si el rastreador no pudo iniciarse, etc. El uso del detector de eventos del supervisor puede jugar un papel en el monitoreo y la alarma.
El detector de eventos del supervisor también es un proceso hijo del supervisor. Por lo tanto, primero debe escribir un script de monitoreo listener.py y luego dejar que el supervisor ejecute el script.
El método de escritura de listener.py se dedicará a escribir un artículo más adelante.
Después de escribir, busque el archivo de configuración principal del supervisor y agregue el siguiente contenido

[eventlistener:listener]
command=btpython listener.py   
process_name=%(program_name)s 
numprocs=1                    
events=PROCESS_STATE                  
directory=/www/wwwroot/project 
autostart=true               
autorestart=unexpected  
user=root      

Utilizar supervisor en entorno de pagoda

  1. Instale el administrador de proyectos de python, instale la versión python3.7.8, establezca la versión predeterminada
    pyenv global 3.7.8

problema comun

  1. ¿El supervisor debajo de la pagoda no se puede iniciar normalmente?
    Vaya a /www/server/panel/plugin/supervisor/log para ver el registro de errores
  2. ¿Obviamente instaló pytest pero no muestra el módulo con nombre pytest?
    Esto se debe a que hay varias versiones de python en el servidor, y el directorio de instalación de pytest no está en la versión predeterminada.La solución es la siguiente:
    use which pytest para encontrar la ubicación del comando pytest y luego /root/ .pyenv/shims/python3 -m pytest
  3. ¿Qué debo hacer si se cambió la clave ssh después de que el servidor remoto reinstala el sistema?
    Ejecute ssh-keygen -R "ip" localmente, donde la dirección IP se reemplaza con la dirección del servidor remoto
  4. ¿Cómo ve Linux el proceso?
    https://www.linuxprobe.com/linux-look-process.html

pagoda personalizada

La razón para personalizar la pagoda es que muchas tareas repetitivas de depuración e instalación durante el período de desarrollo son un dolor de cabeza, por lo que analizamos el código fuente de la pagoda e hicimos modificaciones personalizadas según nuestras propias necesidades. Se estima que muchos estudiantes no deberían necesitar este paso, por lo que no escribiré tutoriales. Si es necesario, puede ponerse en contacto conmigo en privado.

Supongo que te gusta

Origin blog.csdn.net/weixin_42553583/article/details/124474555
Recomendado
Clasificación