怎样取得这个页面中的数据存入ASP变量?
想到这个页面:http://zst.cjcp.com.cn/cjwk3/view/kuai3_zonghe.php?lotteryType=gx
中的“期号”和“奖号”数据并存入ASP变量,请教代码?
1、整个页面的所有“期号”和“奖号”一起循环取得。
2、能不能指定某一期的期号去取?例如我指定要取期号为“20130508059”的“奖号”数据可以实现吗?
请提供代码,不要光说用什么ajax的方法正则取得,我不太懂ajax,谢谢了。
[解决办法]
function getvalue(qihao)
Set xhr= Server.CreateObject("microsoft.xmlhttp")
xhr.open "get","http://zst.cjcp.com.cn/cjwk3/view/kuai3_zonghe.php?lotteryType=gx",false
xhr.send
text= xhr.responsetext
set xhr=nothing
startp=instr(text,"<tbody id=""pagedata"">")+len("<tbody id=""pagedata"">")
endp=instr(startp,text,"</tbody>")
text=mid(text,startp,endp-startp)
set rx=new regexp
rx.Global=true
rx.IgnoreCase=true
rx.Pattern="<td class='z_bg_05'>(\d+)</td><td class='z_bg_13'>(\d+)</td>"
set mc=rx.Execute(text)
set rx=nothing
if qihao<>"" then
for each m in mc
if m.submatches(0)=qihao then
getvalue=m.submatches(1)
exit function
end if
next
else
for each m in mc
getvalue=getvalue&"期号:"&m.submatches(0)&" 奖号:"&m.submatches(1)&"<br/>"
next
end if
set mc=nothing
end function
response.write getvalue("20130508047")&"<br/>"
response.write getvalue("20130508049")&"<br/>"
response.write getvalue("")'获取所有参数设置为""
[解决办法]
'这和前面两个问题不是一样的吗?
<!--#include file="easp.asp"-->
<%
Easp.BasePath = ""
Easp.Use("Http")
Dim url, tmp, arr, perdid, awardcode
Dim item
url = "http://zst.cjcp.com.cn/cjwk3/view/kuai3_zonghe.php?lotteryType=gx"
tmp = Easp.Http.Get(url)
arr = Easp.Http.Search("<td class='z_bg_05'>\d{11}</td><td class='z_bg_13'>\d{3}</td>")
For Each item In arr
'先找到期号
perdid = Easp.Http.SubStr_(item, "<td class='z_bg_05'>", "</td>", "")
'再查找开奖号码
awardcode = Easp.Http.SubStr_(item, "<td class='z_bg_13'>", "</td>", "")
Easp.WN "期号:" & perdid & " 开奖号码:" & awardcode
Next
'获取该页面指定期号的开奖号码
Easp.WN ""
Easp.WN GetAwardcode("20130508044")
Public Function GetAwardcode(ByVal perdid)
If InStr(tmp, perdid) > 0 Then
GetAwardcode = Easp.Http.SubStr("<td class='z_bg_05'>" & perdid & "</td><td class='z_bg_13'>", "</td>", "")
Else
GetAwardcode = "ERROR"
End If
End Function
%>
'得到的结果
期号:20130508043 开奖号码:156
期号:20130508044 开奖号码:455
期号:20130508045 开奖号码:123
期号:20130508046 开奖号码:135
期号:20130508047 开奖号码:446
期号:20130508048 开奖号码:146
期号:20130508049 开奖号码:135
期号:20130508050 开奖号码:366
期号:20130508051 开奖号码:136
期号:20130508052 开奖号码:445
期号:20130508053 开奖号码:256
期号:20130508054 开奖号码:245
期号:20130508055 开奖号码:146
期号:20130508056 开奖号码:235
期号:20130508057 开奖号码:555
期号:20130508058 开奖号码:244
期号:20130508059 开奖号码:112
期号:20130508060 开奖号码:144
期号:20130508061 开奖号码:356
期号:20130508062 开奖号码:114
期号:20130508063 开奖号码:115
期号:20130508064 开奖号码:114
期号:20130508065 开奖号码:346
期号:20130508066 开奖号码:356
期号:20130508067 开奖号码:345
期号:20130508068 开奖号码:346
期号:20130508069 开奖号码:344
期号:20130508070 开奖号码:146
期号:20130508071 开奖号码:135
期号:20130508072 开奖号码:234
455
arr = Easp.Http.Search("<td class='z_bg_05'>\d{11}</td><td class='z_bg_13'>\d{3}</td>")
请帮解释这一句的意思,为什么有时是d{11}有时是d{3}这个括号里面的数值是根据什么设定的?
'\d{11}表示11个数字,也就是11个数的期号,\d{3}表示3个数字,也就是3个数的开奖号码
另外我看了一下源码其中期号<td class='z_bg_05'></td>是在这个区段内的,但是第一个是序号,第二个才是要取的期号,你是代码里哪个功能是知道要取第二个中数值?谢谢回答
'<td class='z_bg_05'>1</td><td class='z_bg_05'>20130508057</td>
'就是根据\d{11}来判断的,序号不是11位数字,期号是11位数字
总的来说
'<td class='z_bg_05'>\d{11}</td><td class='z_bg_13'>\d{3}</td>
'<td class='z_bg_05'>11个数字</td><td class='z_bg_13'>3个数字</td>
'就是从源码里查找符合上面一行条件的字符串,可能找到0或多个
'然后再从多个结果里一个一个提取11位的期号,和3位的开奖号码