页面中代码是<td>@mainIn@</td>的价格数据如何提取?
发布于 1年前 作者 blackgun 564 次浏览

目前工作中遇到一个困难,需提取价格数据,但数据似乎是异步载入的。

参考页面:http://finance.sina.com.cn/realstock/company/sz300228/nc.shtml

<tr>
    <th>
        金额(万元)
    </th>
    <td>[@mainIn](/user/mainIn)@</td>
    <td>[@mainOut](/user/mainOut)@</td>
    <td>[@retailIn](/user/retailIn)@</td>
    <td>[@retailOut](/user/retailOut)@</td>
</tr>

请高手讲解一下这种怎么回事,该如何解决?

9 回复

问题说明白点,这样没人知道你想要什么?

你如果想直接获取页面上的值,直接jquery不行吗?

页面中的《td》…《/td》之间的信息不是具体数值,而是模版变量。用抓取程序读取的结果是:《td》@mainIn@《/td》,而不是具体数值(比如:《td》95.05《\td》),应该是页面中js程序用ajax方式替换@mainIn@为95.05。

我如何才能找到@mainIn@替换方法和数值源头,具体例子请看这个页面的代码:http://finance.sina.com.cn/realstock/company/sz300228/nc.shtml

var reg = /(\d+(?:.\d+)?)</td>/ig; var str = '100.101123'; var match = null; while((match = reg.exec(str)) != null) { console.log(match); }

尼玛… 把格式全部都干掉了… 无法正常回复啊…

var reg = /(\d+(?:.\d+)?)</td>/ig; var str = '100.101123'; var match = null; while((match = reg.exec(str)) != null) { console.log(match); }

var reg = /(\d+(?:\.\d+)?)<\/td>/ig;
var str = '100.101123';
var match = null;
while((match = reg.exec(str)) != null) {
    console.log(match);
}

var reg = /&lt;td&gt;(\d+(?:.\d+)?)&lt;/td&gt;/ig; var str = '&lt;td&gt;100.10&lt;/td&gt;&lt;td&gt;1234&lt;/td&gt;’; var match = null; while((match = reg.exec(str)) != null) { console.log(match); }

尼玛啊 我放弃了…

这是个问题,你给的这个链接在请求的时候还没有数据,数据是后来加载上去的,就算你请求这个链接也是没有数据的,所以这还真是个问题,我也想知道怎么解决这个问题?

回到顶部