注册 登录
编程论坛 ASP技术论坛

求助关于小偷程序的HTML问题( 有一定深度)

gupiao175 发布于 2008-02-03 12:10, 2266 次点击
求助关于此类网站(PHP结构的),如http://bill.finance.,我想借用此页面上的一些数据,此为股票类型网站,我把他直接用小偷程序转为HTML是不行的,会出现乱码错误,可能因为是它是PHP的原因,如果转ASP为HTML一切正常,请问这种情况下我该如何操作才能获得该页面上的数据呢?非常感谢!
12 回复
#2
不惑2008-02-05 08:48
乱码一般都是中文编码(中文可能是全球编码最多的一种语言吧)问题造成的.
首先你先搞清楚你的页面是用的什么编码,然后它的编码是什么.
然后加一个编码转换就可以了.
#3
gupiao1752008-02-15 17:50
哦,谢谢不惑!
谢谢不惑!不过SINA的那个也面到底是用的是什么编码,我实在搞不董,希望有研究过的告之一下,谢谢!
#4
hmhz2008-02-15 17:58
你要获取的只是这个里面的内容吧,其实也很简单,你就把这个页面当作html文件来对待就行了,可以通过小偷程序对里面的代码进行筛选,按照他有规律的格式来筛选就行了
只有本站会员才能查看附件,请 登录
#5
hmhz2008-02-15 18:04
他的这段html代码就是这样的
程序代码:
<table width="500" border="1" bordercolordark="#FFFFFF" bordercolorlight="#5594B1" bgcolor="#EEEEEE">
<tr>
    <td><b>时间</b></td>
    <td><b>成交量</b></td>
    <td><b>成交价格</b></td>
    <td><b>成交金额</b></td>
    <td><b>买卖盘性质</b></td>
</tr>
<tr>
    <td>10:34:44</td>
    <td>41078股</td>
    <td>9.37元</td>
    <td>384900.86元</td>
    <td><font color="red">买盘</font></td>
</tr>
<tr>
    <td>09:38:31</td>
    <td>45200股</td>
    <td>9.38元</td>
    <td>423976元</td>
    <td>中性盘</td>
</tr>
<tr>
    <td>09:37:01</td>
    <td>41100股</td>
    <td>9.4元</td>
    <td>386340元</td>
    <td><font color="red">买盘</font></td>
</tr>
<tr>
    <td>09:35:57</td>
    <td>61200股</td>
    <td>9.42元</td>
    <td>576504元</td>
    <td><font color="red">买盘</font></td>
</tr>
<tr>
    <td>09:31:40</td>
    <td>55400股</td>
    <td>9.35元</td>
    <td>517990元</td>
    <td><font color="red">买盘</font></td>
</tr>
</table>
#6
gupiao1752008-02-15 18:05
谢谢斑竹!
谢了,我想获取http://bill.finance.这个地址的大单数据,用小偷程序直接掉用显示的是乱码,我想也许和他的文件格式PHP有关吧!你说的方法掉用ASP的当然是没问题的!
#7
gupiao1752008-02-15 18:08
呵喝,谢谢斑竹,这么热心!
呵喝,谢谢斑竹,这么热心!
把希望能通过某段代码直接把该大单数据取出来!可是用普通小偷程序好象根本做不到这点,直接掉用就是乱吗,不信斑竹你可以试试。有的网站ASP结构的就没问题,换成PHP或特殊的结构的就不行了,帮忙研究下,谢谢斑竹!
#8
hmhz2008-02-16 10:57
无论是什么程序编写的,最终在浏览器访问下来的都是html格式的语言,根据这个原理,你可以使用程序模拟浏览器访问这个地址,然后获取html源代码,这样你就可以针对该源代码进行筛选了
#9
multiple19022008-02-16 12:23
和php无关啊……应该是页面编码问题
#10
gupiao1752008-02-16 18:10
我估计也是编码问题
我估计也是编码问题,不过这个地址http://bill.finance.,用一般小偷程序取数据根本不管用,想了好多天了。试着换编码GB2312,UTF-8都不行。原理上是行得通,可是实际上就是取不到需要的数据。郁闷!
#11
hmhz2008-02-17 08:53
你把你的小偷程序发上来我们看看,也许可以对你的程序进行一些修改才行
#12
gupiao1752008-02-22 13:01
代码如下:
假设已经建立XMLHTTP对象代码(这里不在重复)
 function getInfo() {
     var phone = document.getElementById("username").value;
     var url = "daimajiance.asp?user=" + escape(phone);//daimajiance.asp为需要调用其他网站数据的核心ASP文件!
     request.open("GET", url, true);
      request.onreadystatechange = updatePage;
     request.send(null);
   }
    function updatePage()
    {
     if (request.readystate == 4)
     if (request.status == 200)
     {
        var response = unescape(request.responseText);
        response=response.toString();
        response=response.split("|");
                document.getElementById("sp").innerText =response[1];//大单买量        document.getElementById("zd").innerText =response[2];//大单卖量                
}
daimajiance.asp源文件:

Dim Url,msg,start,over,gc,zf,jg,zdf,hsl,lbi,npan,wpan
Url="http://bill.finance.
msg = getHTTPPage(Url)
‘取得主买量
start=Instr(msg,"主买量") + 40
over=Instr(msg,"主卖量")-10
gc=mid(msg,start,over-start)
For i=1 To Len(gc)
zf=Mid(gc,i,1)
If IsNumeric(zf) Or zf="." Then
jg=jg&zf
End if
Next

’取得主卖量
start=InStr(msg,"主卖量")+40
over=InStr(msg,"中性量")-10
gc=Mid(msg,start,over-start)
For i=1 To Len(gc)
zf=Mid(gc,i,1)
If IsNumeric(zf) Or zf="." Or zf="-"  Then
zdf=zdf&zf
End if
Next
response.write(escape(jg&"|"&zdf))

然后置两个显示标签:
<span id="sp">大单买量</span>
<span id="zd">大单卖量</span>
#13
gupiao1752008-02-22 13:10
注:
getHTTPPage()函数作用为:返回值getHTTPPage是取得目标网页的html代码。由于比较简单,没有列出来。
本人曾经用以上代码去取得ASP结构或HTML结构的页面数据都没问题,都能正常显示,所以代码没问题,本人感觉关键还在谁是否能真正了解新浪的http://bill.finance.这个页面的网页组织结构!望大家一起讨论,谢谢!
1