Estou desenvolvendo um programa em Python que usa selênio (webdriver python bindings) e PhantomJS (headless WebKit scriptable com uma API JavaScript) para carregar e interagir com sites.
Quando eu uso este programa em um computador / rede local ubuntu, ele carrega os sites corretamente; Eu posso despejar todo o seu HTML:
print webdriver.page_source
Quando eu o executo no servidor , esta linha só imprime
<html><head></head><body></body></html>
Parece que o servidor respondeu à solicitação com uma página HTML vazia .
Esse problema ocorre em dois sites, mas o programa funciona corretamente no terceiro site.
Isso me faz pensar que é um problema de rede mais do que um problema de programação (?).
O servidor é fornecido por um provedor vps.
Do servidor, posso fazer ping no servidor de um dos sites que responde a HTML vazio, o que me faz pensar que não sou não ip na lista negra ou banido.
Aqui está a saída netstat -tulpen (executada no servidor)
:
tcp 0 0 0.0.0.0:41207 0.0.0.0:* LISTEN 0 267296 22458/phantomjs
tcp 0 0 0.0.0.0:38457 0.0.0.0:* LISTEN 0 267294 22463/phantomjs
tcp 0 0 0.0.0.0:33667 0.0.0.0:* LISTEN 0 267295 22461/phantomjs
Eu não sei como depurar isto / entendo o que está acontecendo.
Atualização: Após alguns testes, criei um script JS que usa diretamente o PhantomJS para despejar o conteúdo HTML de uma página e registrar erros.
Isso dá
FAIL to load the address
Error creating SSL context (error:140A90C4:SSL routines:func(169):reason(196))
Portanto, pode estar relacionado com o PhantomJS ou algo que o bloqueie.