铁匠

做人要低调
随笔 - 134, 评论 - 255 , 引用 - 184

导航

公告

文章分类

存档

随笔分类

相册

BLOG

网站

论坛

用一个下午时间完成一个列车时刻查询系统的打造

今天发现了网上有地方可以对4月18日后的列车时刻表进行查询了,于是想抓它的数据库,扫描后,没有发现服务器的漏洞,只好作一个网页机器人来抓网。
老规矩用:xmlhttp,打开数据页面对里面的网页结构后,就开始动手,用字串处理函数分解网页中所要的数据。花了不知道多少个小时的时间,才搞定。到最后一步,显示指定车次的详细信息的时候,发现了问题:对方有反盗链的拓施,只要一去请求这个页面,它就会自动跳转到网站的首页,方案眼看宣布失败。
突然想起,反盗链措施是基于对Referer的检查的,也就是引用页,而通常的下载工具都有这个功能,这说明这个引用是可以人工制造的,我想在XMLHTTP里面也应该要有这个功能。查了MSDN(虽然偶E文巨烂,可是一个MSDN是难不倒我的,哈哈)后发现XMLHTTP里面有一个setRequestHeader方法,使用Http.setRequestHeader "Referer",URL这种方式,就可以制造一个引用,然后抓取,哈哈,成功了!
经过一会儿的测试后,发现效果还不错,只可惜速度有点慢(这个和远程服务器速度,网速,本地服务器速度都有关系)。
测试网址是:http://202.117.83.12/xsc/service/train/search2.asp

发表于 2004年4月22日 20:01

评论

# re: 用一个下午时间完成一个列车时刻查询系统的打造

越来越强了:)
2004-4-23 9:13 | 宝玉

# re: 用一个下午时间完成一个列车时刻查询系统的打造

今天要改成作C#的应用程序
把所有的数据抓到自己的数据库里面来!
2004-4-23 13:18 | 铁匠

# re: 用一个下午时间完成一个列车时刻查询系统的打造

真强,能提供给我们下载么?
2004-6-15 15:21 | ttbs

# re: 用一个下午时间完成一个列车时刻查询系统的打造

你说的这个setRequestHeader方法要怎么弄啊?能把具体方法告诉我们吗?谢谢你大侠!
2004-6-15 15:24 | ttbs

# re: 用一个下午时间完成一个列车时刻查询系统的打造

setRequestHeader的例子看下面的:
function getHTTPPage(url)
on error resume next
dim http
set http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.setRequestHeader "Referer","http://www.webuc.net/"
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function

Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
2004-6-16 9:11 | 铁匠

# re: 用一个下午时间完成一个列车时刻查询系统的打造

现在已经把它整理出来了,下载页面在:
http://webuc.net/chinahuman/archive/2004/06/16/1016.aspx
2004-6-16 9:31 | 铁匠

# re: 用一个下午时间完成一个列车时刻查询系统的打造

谢谢铁匠大哥!你真是个大好人!
2004-6-16 20:57 | ttbs

# re: 用一个下午时间完成一个列车时刻查询系统的打造

铁匠大哥.下载地址已经失效了
2005-6-26 17:14 | TT

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号