использование phantomjs для получения вывода jscript

#javascript #json #phantomjs

#javascript #json #phantomjs

Вопрос:

У меня есть внутренняя веб-страница, с которой я хочу извлекать фрагменты данных через определенные промежутки времени.

Я использовал curl для очистки страницы, но обнаружил, что нужные мне данные находятся в jscript. Итак, теперь я пытаюсь автоматизировать jscript, чтобы я мог получить вывод в текстовый файл, затем я могу проанализировать текстовый файл, чтобы получить нужную цифру.

Я программист низкого уровня, мои навыки программирования более высокого уровня невелики, и я на пределе своих знаний.

    <script language="javascript" type="text/javascript" src="https://x-x--x-x-x-x-x-x-x-x.com/igraph/chart?GraphType=zoomeramp;SchemaName1=Serviceamp;DataSet1=Prodamp;Marketplace1=LTN4-ShippingRouterControlleramp;HostGroup1=ALLamp;Host1=ALLamp;ServiceName1=WarehouseControlServiceamp;MethodName1=SortationOrchestrator.divertamp;Client1=ALLamp;MetricClass1=NONEamp;Instance1=NONEamp;Metric1=RECIRCamp;Period1=OneMinuteamp;Stat1=namp;Label1=SortationOrchestrator.divert RECIRCamp;SchemaName2=Serviceamp;MethodName2=SortationOrchestrator.scanamp;Metric2=Timeamp;Label2=SortationOrchestrator.scan Timeamp;DecoratePoints=trueamp;TZ=Europe/London@TZ: Londonamp;UpperValueLeft=150amp;LowerValueLeft=0amp;StartTime1=-PT2Mamp;EndTime1=-PT1Mamp;FunctionExpression1=M1 / M2 * 100amp;FunctionLabel1=Recirc % [val: {sum}]amp;FunctionYAxisPreference1=leftamp;ChartLegend=trueamp;WidthInPixels=400amp;HeightInPixels=400amp;Action=GetGraphamp;Version=2007-07-07amp;iGHrefresh=1475844553amp;Jsonp=MP.ChartController.loaded('chartdiv0',"></script>
  

и я хочу, чтобы вывод Jsonp=MP.ChartController.loaded

что при использовании firebug вывод

     MP.ChartController.loaded('chartdiv0',
     {
       error: '',
       width: 400,
       height: 400
      , summaryData: [

            { id: 0,
              label: 'Recirc % [val: 26.19]',
  

мне нужен recirc val.

могу ли я использовать phantomjs для запуска jscript и вывода json в текстовый файл?

Комментарии:

1. Вы уверены, что имеете в виду JScript, а не только JavaScript? Это две разные вещи.

2. ПРИВЕТ, да, это пределы моих знаний, я имею в виду Javascript. Вы можете помочь?

3. @pyth0nBen не могли бы вы подробнее уточнить свой вопрос

Ответ №1:

Не phantomjs, а nodejs. PhantomJS — это безголовый браузер, и я не думаю, что это сильно помогло бы. Следующий код может продемонстрировать лучше: https://runkit.com/pankaj/periodic-ajax

Или, если вы хотите сделать это на HTML-странице с помощью jQuery, следующий код демонстрирует, что:

 var i = 0;
var intervalID = setInterval(function(){
    $.get( 'https://mocknode.herokuapp.com/id/', function (data) {
        console.log(i  , data)
    })
}, 5000);  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>  

Комментарии:

1. Я действительно не понимаю, как это отвечает на вопрос.

2. @ArtjomB. Потому что человек просит получить страницу с помощью phantomjs, а затем сохранить ее вывод в текстовом файле. Я ответил, что было бы лучше использовать nodejs. И ссылка в моем ответе четко объясняет периодическое извлечение данных из ajax, дальнейшие операции могут быть закодированы.

3. OP запрашивает извлечение определенной части информации со страницы. Я не вижу этого в вашем ответе.

4. @ArtjomB. Я очень конкретно ориентируюсь на последнюю строку вопроса. Тем не менее, я не добавил никакого кода для сохранения json в файл. Сохранение json в файл можно выполнить, открыв поток записи в файл.