Я хочу использовать PhantomJS в Python . Я погуглил эту проблему, но не смог найти правильных решений.
Я считаю, os.popen()
может быть хорошим выбором. Но я не мог передать некоторые аргументы этому.
Использование subprocess.Popen()
может быть правильным решением на данный момент. Я хочу знать, есть ли лучшее решение или нет.
Есть ли способ использовать PhantomJS в Python?
subprocess.popen
но с некоторыми расширенными функциями, чтобы сделать API гладким.Ответы:
Самый простой способ использовать PhantomJS в Python - это через Selenium. Самый простой способ установки
npm -g install phantomjs-prebuilt
После установки вы можете использовать фантом так же просто, как:
Если ваша переменная окружения системного пути установлена неправильно, вам необходимо указать точный путь в качестве аргумента
webdriver.PhantomJS()
. Заменить это:... со следующим:
Ссылки:
источник
driver.page_source
.bodyStr= driver.find_element_by_tag_name("body").get_attribute("innerHTML")
и ... это сработало!PhantomJS недавно полностью отказался от поддержки Python . Тем не менее, PhantomJS теперь встраивает Ghost Driver .
С тех пор появился новый проект, чтобы заполнить пустоту
ghost.py
. Вы, вероятно, хотите использовать это вместо:источник
Теперь, когда GhostDriver поставляется в комплекте с PhantomJS, стало еще удобнее использовать его через Selenium.
Я попробовал установить Node в PhantomJS, как предложил Pykler, но на практике я обнаружил, что он медленнее, чем автономная установка PhantomJS. Я полагаю, что автономная установка не предоставляла эти возможности ранее, но в версии 1.9 она так и делает.
Теперь вы можете использовать как это
источник
Вот как я тестирую javascript с использованием PhantomJS и Django:
mobile / test_no_js_errors.js :
mobile / tests.py :
Запустите тесты :
manage.py test mobile
источник
Ответ на @Pykler является большим , но требование Node устарел. Комментарии в этом ответе предлагают более простой ответ, который я поставил здесь, чтобы сэкономить время других:
Установить PhantomJS
Как указывает @ Vivin-Paliath, это отдельный проект, а не часть Node.
Mac:
Ubuntu:
и т.д
Установите
virtualenv
(если вы этого еще не сделали):Если на вашей машине установлены Python 2 и 3, вам может потребоваться запустить
virtualenv-3.6 mypy
или аналогичный.Установить селен:
Попробуйте простой тест, например, заимствованный из документации :
источник
PhantomJS
на Windows? Кажется, это не работает с помощьюpip
команды.это то, что я делаю, python3.3. Я обрабатывал огромные списки сайтов, поэтому отказ по таймауту был жизненно важен для выполнения задания по всему списку.
источник
Если вы используете Anaconda, установите с:
в вашем скрипте:
работает отлично.
источник
Если вы используете Buildout , вы можете легко автоматизировать процессы установки, описанные Pykler, используя рецепт gp.recipe.node .
Эта часть устанавливает node.js как двоичный файл (по крайней мере, в моей системе), а затем использует npm для установки PhantomJS. Наконец, он создает точку входа
bin/phantomjs
, с помощью которой вы можете вызвать веб-драйвер PhantomJS. (Чтобы установить Selenium, вам нужно указать его в требованиях к яйцам или в конфигурации Buildout.)источник
gp.recipe.phantomjs
, который настраиваетphantomjs
иcasperjs