[Desenvolvimento do rastreador] Com base no combate real do projeto, resumo da experiência desde o desenvolvimento até a implantação

processo de desenvolvimento

1. Desenvolvimento através de IDE

plug-in do Chrome

Fique on-line cientificamente, vá até a loja de plug-ins e procure a instalação do Selenium IDE.

complementos do Firefox

Se você não tiver acesso à Internet, use o plug-in do firefox e procure por selenium IDE para instalá-lo.

desenvolver

Após a instalação, abra o plug-in e grave suas próprias operações do navegador. Durante o processo de gravação, algumas operações sem sentido podem ser excluídas, o que pode tornar o script de exportação mais conciso.
Depois que a gravação na etapa anterior for concluída, exporte o script de gravação e selecione python como o idioma para obter o código completo do script python.
O python exportado pelo Selenium IDE pode ser usado diretamente e pode ser ainda mais simplificado, como a remoção de dependências do pytest.
Mais tarde, você descobrirá que, se vários rastreadores estiverem sendo executados ao mesmo tempo, o Chrome consumirá muita memória durante a execução. Portanto, considere descartar o selênio e os navegadores e acessar diretamente a API do site de destino.

2. Desenvolvido pelo carteiro

O desenvolvimento do Postman é a essência do desenvolvimento da API. Para ser adicionado mais tarde

3. desenvolvimento irregular

Para ser adicionado

4. Adicionar proxy

site de compra do agente

Visitar o site de destino com uma grande quantidade de tráfego causará o banimento do IP. A solução temporária é aguardar alguns minutos antes de visitar. Uma solução permanente é usar um proxy ip.
O SmartProxy
é caro, mas muito fácil de usar

processo de implantação

O ambiente de implantação é CentOS

1. Implantação do pagode

O uso de python no ambiente pagode

O centOS vem com o python 2.7, mas nosso desenvolvimento é baseado no python3. Depois que o centOS instalar o pagode, use o seguinte comando
btpython -V
para descobrir que o btpython é o python 3.8, portanto, não há necessidade de instalar gerenciadores de versão do python, como o pyenv.

Instale o Chrome no centOS

  1. Modifique a fonte do yum
    Crie um novo arquivo google-chrome.repo no diretório /etc/yum.repos.d/ e adicione o seguinte conteúdo a ele
[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. A fonte oficial do Google instalada pelo yum
    yum -y install google-chrome-stable
    pode não estar disponível na China, resultando em falha de instalação ou atualização na China, você pode adicionar os seguintes parâmetros para instalar: 
    yum -y install google-chrome-stable --nogpgcheck
  2. Verifique a versão do chrome e instale o chromedriver correspondente
    google-chrome -v

Instale o navegador Firefox no centOS

Pode ser instalado diretamente usando o yum
yum install firefox

Instalar Webdrivers

  1. Link oficial do espelho ChromeDriver
    Taobao
  2. O GeckoDriver é adequado para o navegador Firefox
    Link do Github
    Geckodriver e tabela de mapeamento de versão do Firefox
  3. SafariDriver (adequado para desenvolvimento mac)
    O Safari possui seu próprio webbriver, que não precisa ser instalado separadamente, mas precisa ser ativado. Menu/Desenvolvimento/Permitir depuração remota. menu/develop/Permitir automação remota
    Todos os webbrivers são colocados na pasta /usr/local/bin

Configurar um navegador sem cabeça

Um navegador sem cabeça não será usado durante o desenvolvimento, mas é recomendável usar o modo sem cabeça após a implantação no servidor. O código de amostra para o modo sem cabeça é o seguinte

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. monitoramento do supervisor

A razão pela qual o monitoramento do supervisor é usado é que o rastreador sempre fará com que o processo seja encerrado inesperadamente devido a vários motivos. O uso do supervisor pode reiniciar automaticamente quando o processo for encerrado.

instalação do supervisor

  1. Instalação do supervisor sob o pagode
    Recomenda-se usar o plug-in do supervisor do pagode, instalação tola
  2. Instalação do supervisor em não pagode
    pip install supervisor
  3. Instalação do supervisor no macOS
    brew install supervisor
    Depois de instalar o supervisor no mac, você pode iniciar o navegador e inserir
    http://localhost:9001
    para gerenciar visualmente os projetos do supervisor

Inicialização da linha de comando do supervisor

A visualização do pagode é muito conveniente para usar o supervisor, mas quando o processo de monitoramento atinge mais de dois dígitos, é demorado iniciar manualmente cada processo, um por um. Portanto, é recomendável usar a linha de comando para iniciar e pausar.
O comando da linha de comando do supervisor é o seguinte

supervisorctl reload
supervisorctl stop all

O caminho de instalação do supervisor no pagode é /www/server/panel/pyenv/bin/supervisorctl,
portanto, o comando acima deve ser alterado para

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

alarme de monitoramento do ouvinte de eventos do supervisor

Depois que o programa é implantado, sempre queremos saber como ele está sendo executado, como: quantas vezes o programa sai de forma anormal, se o rastreador falhou ao iniciar e assim por diante. O uso do ouvinte de eventos do supervisor pode desempenhar um papel no monitoramento e alarme.
O ouvinte de eventos do supervisor também é um processo filho do supervisor. Portanto, primeiro você precisa escrever um script de monitoramento listener.py e, em seguida, deixar o supervisor executar o script.
O método de escrita de listener.py será dedicado a escrever um artigo posteriormente.
Depois de escrever, localize o arquivo de configuração principal do supervisor e adicione o seguinte conteúdo

[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      

Usar supervisor em ambiente pagode

  1. Instale o gerenciador de projetos python, instale a versão python3.7.8, defina a versão padrão
    pyenv global 3.7.8

problema comum

  1. O supervisor sob o pagode não pode ser iniciado normalmente?
    Vá para /www/server/panel/plugin/supervisor/log para visualizar o log de erros
  2. Obviamente instalado pytest, mas não mostra nenhum módulo nomeado pytest?
    Isso ocorre porque existem várias versões do python no servidor e o diretório de instalação do pytest não está na versão padrão. A solução é a seguinte:
    use which pytest para encontrar a localização do comando pytest e, em seguida, /root/ .pyenv/shims/python3 -m pytest
  3. O que devo fazer se a sshkey tiver sido alterada após o servidor remoto reinstalar o sistema?
    Execute ssh-keygen -R "ip" localmente, onde o endereço IP é substituído pelo endereço do servidor remoto
  4. Como o Linux vê o processo
    https://www.linuxprobe.com/linux-look-process.html

pagode personalizado

A razão para personalizar o pagode é que muitas tarefas repetitivas de depuração e instalação durante o período de desenvolvimento são uma dor de cabeça, então analisamos o código-fonte do pagode e fizemos modificações personalizadas de acordo com nossas próprias necessidades. Estima-se que muitos alunos não precisem dessa etapa, por isso não escreverei tutoriais. Se necessário, pode contactar-me em privado.

Acho que você gosta

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