Я разрабатываю программу на Python, которая использует селен (привязки webdriver к python) и PhantomJS (безголовый WebKit с возможностью создания сценариев с JavaScript API) для загрузки веб-сайтов и взаимодействия с ними.
Когда я использую эту программу на локальном локальном компьютер / сеть ubuntu корректно загружает сайты; Я могу сбросить весь их HTML:
print webdriver.page_source
Когда я запускаю его на сервере , эта строка выводит только
<html><head></head><body></body></html>
Похоже, что сервер ответил на запрос пустая HTML-страница.
Эта проблема возникает на 2 веб-сайтах, но программа работает правильно на третьем веб-сайте. Это заставляет меня думать, что это проблема сети, а не проблема программирования (?). Сервер предоставляется vps-провайдером.
С сервера я могу проверить связь с сервером одного из веб-сайтов, который отвечает на пустой HTML-код, что заставляет меня думать, что я не ip в черном списке или забанен.
Вот вывод netstat -tulpen (выполняется на сервере) :
tcp 0 0 0.0.0.0:41207 0.0.0.0:* СЛУШАТЬ 0 267296 22458 / phantomjs
tcp 0 0 0.0.0.0:38457 0.0.0.0:* СЛУШАТЬ 0 267294 22463 / phantomjs
tcp 0 0 0.0.0.0:33667 0.0.0.0:* СЛУШАТЬ 0 267295 22461 / phantomjs
Я не знаю, как это отладить / понять, что происходит.
Обновление: После некоторого тестирования я создал сценарий JS, который напрямую использует PhantomJS для вывода HTML-содержимого страницы и регистрации ошибок.
Это дает
FAIL для загрузки адреса Ошибка создания контекста SSL (ошибка: 140A90C4: подпрограммы SSL: func (169): cause (196))
Таким образом, это может быть связано с PhantomJS или чем-то, что его блокирует.
Despois de determinar que o erro parece proceder de PhantomJS, xoguei coas súas opcións e parámetros.
Parece que a versión que executei no servidor (1.9.8) está rota para algúns dos sitios web cos que teño que interactuar.
Instalei 2.1.1 (a versión que executei no cliente) no servidor e agora funciona ben.