#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 в файл можно выполнить, открыв поток записи в файл.