Мой первый скрипт casper.js вызывается из python

pythonscript

import os
import subprocess
APP_ROOT = os.path.dirname(os.path.realpath(__file__))
CASPER = "C:\casperjs\bin\casperjs"
SCRIPT = os.path.join(APP_ROOT,'test.js')
params = CASPER + ' ' + SCRIPT
print subprocess.check_output(params, shell=True)

образец casper.js

var casper = require('casper').create();

casper.start('http://casperjs.org/', function() {
    this.echo(this.getTitle());
});

casper.thenOpen('http://phantomjs.org', function() {
    this.echo(this.getTitle());
});

casper.run();

Проблема - последняя строка в моем скрипте Python

Что я хотел бы знать...

  • Что делает "print subprocess.check_output(params, shell=True)", что такое params, я предполагаю, что shell означает "печать в оболочку", то есть командную строку. И почему это ошибка?

  • Что такое "APP_ROOT = os.path.dirname (os.path.realpath (file))"??? Вы можете разбить его на кусочки.

Я получил это от

https://www.youtube.com/watch?v=Acrx-AjCo8Q

1 ответ

Решение

Вот что вы можете сделать:

Введите следующий код в файл с именем run_casper_sample.py:

import os
import subprocess
APP_ROOT = os.path.dirname(os.path.realpath(__file__))
CASPER = "C:\casperjs\bin\casperjs"
SCRIPT = os.path.join(APP_ROOT,'test.js')
params = CASPER + ' ' + SCRIPT
output = subprocess.check_output(params, shell=True)

Затем введите в командной строке следующее:

python -i run_casper_sample.py

-i опция запускает Python в интерактивной оболочке.

Теперь осмотрите каждую вещь, которая вас интересует, выполнив такие вещи, как:

>>> print(repr(APP_ROOT))

или просто:

>>> APP_ROOT

Вы также можете получить встроенную справку для различных вещей, например:

>>> help(subprocess.check_output)

NB: >>> это просто маркеры, соответствующие интерактивной оболочке Python.

Другие вопросы по тегам