Pode pular rapidamente pela navegação do diretório
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
- 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
- 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
- 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
- Link oficial do espelho ChromeDriver
Taobao
- O GeckoDriver é adequado para o navegador Firefox
Link do Github
Geckodriver e tabela de mapeamento de versão do Firefox - 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
- Instalação do supervisor sob o pagode
Recomenda-se usar o plug-in do supervisor do pagode, instalação tola - Instalação do supervisor em não pagode
pip install supervisor
- 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
- 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
- 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 - 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 - 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 - 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.