日期:2014-05-18  浏览次数:20771 次

怎样批量获取某个网页的查询数据?
怎样批量获取某个网页的查询数据? 不要登录和验证码的那种网页
就像我们学校的四六级成绩查询一样,只要输入学号就可以得到成绩
怎样可以偷懒 不要手动一个一个的输入学号就可以得到成绩
(本人JAVA,数据库才入门,请各位说详细点,思路是什么,需要要用到哪些知识?)

------解决方案--------------------
你首先要获得数据库的地址,然后在JDBC里配置它,如果你不知道数据库在哪,那就没法做程序了。
如果你要实现功能,就要自己建数据库。
给分,谢谢。
------解决方案--------------------
用httpclient请求网页,也可以附加post参数,获得网页文档,解析出所需数据就可以了.具体查看httpclient吧
------解决方案--------------------
写个DAO,查询ID,就能实现了
------解决方案--------------------
引用楼主 zzy88825 的帖子:
怎样批量获取某个网页的查询数据? 不要登录和验证码的那种网页
就像我们学校的四六级成绩查询一样,只要输入学号就可以得到成绩
怎样可以偷懒 不要手动一个一个的输入学号就可以得到成绩
(本人JAVA,数据库才入门,请各位说详细点,思路是什么,需要要用到哪些知识?)

------解决方案--------------------
呵呵,楼主的意思我明白了,
比如你想得到04054000 -- 04054100这个学号段的成绩,可以循环学号
然后通过Ajax的方法,提交查询数据,然后获得服务器返回的数据,并保存下来成.html代码就行了。
------解决方案--------------------
唯一的难点是你得先找出当你输入学号时提交查询数据的网址。
------解决方案--------------------
你根本不能知道别人网站的数库在哪,就算你知道了,你也不可能知道别人的密码,
要登录到数据库中取数那简直是比登天还难。

我看了半天没明白你要做什么!你是要自己做东西给别人查询,还是你要到别人的网站上去偷数据?
------解决方案--------------------
探讨
引用:
引用:
用httpclient请求网页,也可以附加post参数,获得网页文档,解析出所需数据就可以了.具体查看httpclient吧


可以说详细些不。 用httpclient获得它的数据库吗》?

哪那么容易啊,要是那样可以获得网上的任意一个数据库,还谈什么信息安全啊!

------解决方案--------------------
探讨
你根本不能知道别人网站的数库在哪,就算你知道了,你也不可能知道别人的密码,
要登录到数据库中取数那简直是比登天还难。

我看了半天没明白你要做什么!你是要自己做东西给别人查询,还是你要到别人的网站上去偷数据?

------解决方案--------------------
探讨
算是偷数据吧
就是我有我们全班的学号,但我不想一个一个的手动输入去网站查询他们的成绩
想写个程序批量得到,反正这些东西基本算是公开的嘛~

------解决方案--------------------
perl LWP::UserAgent,HTML::TreeBuilder,应该就OK了
再要是变态了,就OLE吧
------解决方案--------------------
肯能用到ajax哦
------解决方案--------------------
不写代码的话找点工具罗. 

ww.aaa.com/show.jsp?USERID=1234 
我用firefox + downthemall的插件批量下(基于浏览器最好的一点就是它自动支持sessionid,cookies等)
只要URL是有规律的就好下了。

其他下载工具flashget之类的估计也是可以的,如果服务器不限制你的sessionid,cookies之类

一些网页网络小偷之类的程序不知道可不可以, 总有办法的。
------解决方案--------------------
我估计lz是个班长之类的人物,然后要查询他们班所有人的四级成绩
又懒得一个一个来

要是这样的话,先自己输入考号之类的查一个,这个时候用抓包工具看发送的是什么http请求
然后自己用ajax一个循环就可以搞定啦
------解决方案--------------------
LZ就是想偷懒不用逐一输入学号查询成绩是吧!这不算偷!
那得看开发人员的开发经验啦!如果是象我们这刚入门的是能办到的!你们学校网页是根据学号查询的,如果是他们的SQL语句只是简单的
select column(成绩) from table (表名) where id=?的话,是可以破解的,你只要在输入 1 or 1==1;这样就把where 语句给废了
就能够获得全部的成绩啦,可遗憾的是得到数据没地方放啊!
 所以还是慢慢查吧
------解决方案--------------------


根据你要请求的页面的地址,使用URL类获取该页面的响应的源码;

然后在源码中找你要的数据。

可以使用一个循环来执行上述操作完成批量查询。


缺点是比较耗资源。
------解决方案--------------------
探讨


根据你要请求的页面的地址,使用URL类获取该页面的响应的源码;

然后在源码中找你要的数据。

可以使用一个循环来执行上述操作完成批量查询。