我有一个内部网页,我希望每隔一段时间从中提取一段数据。
我使用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=zoomer&SchemaName1=Service&DataSet1=Prod&Marketplace1=LTN4-ShippingRouterController&HostGroup1=ALL&Host1=ALL&ServiceName1=WarehouseControlService&MethodName1=SortationOrchestrator.divert&Client1=ALL&MetricClass1=NONE&Instance1=NONE&Metric1=RECIRC&Period1=OneMinute&Stat1=n&Label1=SortationOrchestrator.divert%20RECIRC&SchemaName2=Service&MethodName2=SortationOrchestrator.scan&Metric2=Time&Label2=SortationOrchestrator.scan%20Time&DecoratePoints=true&TZ=Europe%2FLondon@TZ%3A%20London&UpperValueLeft=150&LowerValueLeft=0&StartTime1=-PT2M&EndTime1=-PT1M&FunctionExpression1=M1%20%2F%20M2%20*%20100&FunctionLabel1=Recirc%20%25%20%5Bval%3A%20%7Bsum%7D%5D&FunctionYAxisPreference1=left&ChartLegend=true&WidthInPixels=400&HeightInPixels=400&Action=GetGraph&Version=2007-07-07&iGHrefresh=1475844553&Jsonp=MP.ChartController.loaded('chartdiv0'%2C"></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输出到txt文件吗?
答案 0 :(得分:-1)
不是phantomjs而是nodejs。 PhantomJS是一个无头浏览器,我认为它不会有多大帮助。以下代码可以更好地演示:https://runkit.com/pankaj/periodic-ajax
或者,如果您想在带有jQuery的HTML页面上执行此操作,那么下面的代码演示了:
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>