前几天用了WinInet class类写了一个可以只用输入网页地址,即可获取下载网页源文件的VC小程序,自以为感觉良好,但第二天一试却傻了眼,这个类对于某些网页根本不适用,都会莫名返回”There is some error in getting web page … “的错误信息,这其中就杯具的含有http://www.targetscan.org这个网站(首页可以获取,但是搜索后的页面不能获取)。。起初以为是网页编码的问题,但后来发现不是,网上也查不到相关问题和解决方案,无奈,暂时先转战Perl的CGI编程。
昨儿拔牙,休息一天。今儿上网无意间发现了TopFisher——Web搜索引擎。作为一个计算机专业的学生,我感觉这是一款相当非主流的网页信息采集软件。不过这不正好可以实现我想实现的那个功能吗?我看完了官方的一个教学视频:“如何将www.huochepiao.com中的车票转让信息数据采集下来”之后,眼前一亮,just have a try!官网上下载的那个软件包好像有病毒,推荐大家去迅雷上搜索下载。这款软件是免费的,配有.chm格式的说明书。
像Matlab一样,这个软件也是需要用户通过编程来实现预期的功能,不过当然远远没有Matlab那么复杂。摸索了一下午,小试牛刀,终于成功采集到了http://www.targetscan.org/cgi-bin/targetscan/vert_50/targetscan.cgi?species=Human&gid=&mir_sc=&mir_c=&mir_nc=&mirg=hsa-mir-10a这个网页上的信息,并转储到数据库中~以下是灰常非主流的TopFisher代码。。- -
//配置部分,您可以在这里直接修改配置参数
InitLink("http://www.targetscan.org/cgi-bin/targetscan/vert_50/targetscan.cgi?species=Human&gid=&mir_sc=&mir_c=&mir_nc=&mirg=hsa-mir-10a")
DbConnStr("Provider=Microsoft.JET.OLEDB.4.0;Data source=data.mdb;Jet OLEDB:Engine Type=5;")
dbTable("table1",2)
//-----------------------------------------------------------
//代码部分
function main
//这是TPF脚本的主函数,请将代码写在这里
_$str0 = map[0].area[0].hr[0].form[0].body[0].table[0].td[_$int1].href
_$str1 = map[0].area[0].hr[0].form[0].body[0].table[0].td[0].a[0].text
toInt(_$str0)
setData(0,_$str0)
setData(1,_$str1)
saveData(3,exit)
for(_$int1,0,2774)
{
_$str0 = td[_$int1].href
_$str1 = td[_$int1].a[0].text
toInt(_$str0)
setData(0,_$str0)
setData(1,_$str1)
_$int1 = _$int1+14
saveData(3,exit)
}
end
既然是非主流,这段代码就不解释了吧。。大致实现功能就是将hsa-mir-10a这个miRNA中的全部TargetGene名字和ID两个字段找出并存入到Data数据库中的table1表中。

非主流TopFisher编程界面。。

TopFisher运行结果。。将数据写入数据库中。。右上角显示一共收集到186条信息,与hsa-mir-10a有186个靶基因相符。

最后生成的数据库。。
最近评论