Назад | Перейти на главную страницу

Не удается получить HTML с помощью PhantomJS и драйвера selenium с сервера debian

Я разрабатываю программу на python, которая использует селен (привязки webdriver к python) и PhantomJS (безголовый WebKit с возможностью создания сценариев с JavaScript API) для загрузки веб-сайтов и взаимодействия с ними.

Когда я использую эту программу на местный компьютер / сеть ubuntu корректно загружает сайты; Я могу сбросить весь их HTML:

распечатать 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-содержимого страницы и регистрации ошибок.

Это дает

НЕ удалось загрузить адрес Ошибка создания контекста SSL (ошибка: 140A90C4: подпрограммы SSL: func (169): причина (196))

Так что это может быть связано с PhantomJS или чем-то, что его блокирует.

Определив, что ошибка, похоже, исходит от PhantomJS, я поиграл с его параметрами и параметрами.

Похоже, что версия, которую я запускал на сервере (1.9.8), не работает для некоторых веб-сайтов, с которыми мне нужно взаимодействовать.

Я установил 2.1.1 (версию, которую я запускал на клиенте) на сервере, и теперь она хорошо работает.