Não é possível obter HTML usando o PhantomJS e o driver de selênio de um servidor debian

1

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.

    
por NanoPish 02.11.2017 / 16:51

1 resposta

0

Depois de determinar que o bug parece vir do PhantomJS, eu joguei com suas opções e parâmetros.

Parece que a versão que eu corri no servidor (1.9.8) está quebrada para alguns dos sites que eu preciso para interagir.

Eu instalei o 2.1.1 (a versão que eu executei no cliente) no servidor e agora ele funciona bem.

    
por 03.11.2017 / 10:54