Puede saltar rápidamente a través de la navegación del directorio
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
- 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
- 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
- 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
- ChromeDriver
Taobao espejo
enlace oficial - GeckoDriver es adecuado para el navegador Firefox
Enlace Github
Geckodriver y tabla de mapeo de versiones de Firefox - 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
- Instalación de supervisor debajo de la pagoda
Se recomienda usar el complemento de supervisor de la pagoda, instalación tonta - Instalación de supervisor bajo no pagoda
pip install supervisor
- 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
- 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
- ¿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 - ¿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 - ¿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 - ¿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.