如何实现网页查询,并得到返回的结果 Wininet实现

Trinea 2009-08-24 04:23:54
如何实现网页查询,并得到返回的结果(C++实现)

打个比方:

我现在要查四六级成绩,然后登陆这个网址http://cet.99sushe.com/,输入准考证号,点击查询,然后出现查询结果

我想写个程序实现自动查询功能,就是我输入准考证号,然后得到自己的成绩

我在用Wininet 写,会用InternetOpen、InternetOpenUrl、InternetReadFile读一个网页内容

现在有几个难题

1.我不知道怎么实现查询,就是说比如我想查“7843857348975349”的四级成绩,但是我不知道应该用什么样的函数和网页进行沟通,传什么样的参数

2.我不知道点击查询按钮这个动作怎么实现,难道是我传入“7843857348975349\n”这样的参数,可是行吗。如果行,那么对,不响应回车键的网页怎么办

3.实现点击查询按钮后,网页内容改变(url还没变),这个时候我怎么得到自己的四级成绩呢,虽然我会用InternetReadFile读网页内容,但是我传入“http://cet.99sushe.com”这个参数后,读取到的不还是之前要输入准考证号的那个页面内容

4.实现考试类型的选择

有哪位大侠会用C++实现的,帮忙搞定一下,不需要完整代码,介绍一下怎么实现上面4个问题就行了

谢谢了,感激不尽
...全文
319 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Trinea 2009-08-25
自己搞定了

主要参考资料:
http://support.microsoft.com/kb/165298/zh-cn
http://hi.baidu.com/nianxiaoyou/blog/item/98149d09afb6a287d1581bdd.html

抓包工具smsniff和winsock expert
只是IE8安全过头,用winsock expert 根本抓不到IE8的包,害我把IE8都卸成了IE7才能抓到
  • 打赏
  • 举报
回复
Trinea 2009-08-24
还有就是我要查询的内容放在哪儿传给网页呢,就是我要查的准考证号,谢谢
  • 打赏
  • 举报
回复
Trinea 2009-08-24
[Quote=引用 3 楼 tr0j4n 的回复:]
没错。你想用WinInet实现就得抓包。

不然你就用更麻烦的CHtmlView,然后调IHtmlDocument2接口慢慢去做
[/Quote]

我想问一下,不抓包,看网页源代码,找到编辑框所在的代码行吗,

还有就算我找到了包格式,我怎么给SendRequest传参数呢,是设置pstrHeaders参数吗,那怎么配呢,如果只是向四六级查询网站那样,pstrHeaders应该等于什么啊

麻烦详解,我昨天才开始搞网络编程,很多东西不明白,但是对于TCP/IP的包格式还是了解一点,不知道有没有用,谢谢
  • 打赏
  • 举报
回复
whg01 2009-08-24
简单点的话,就是嵌入一个IE控件,然后去操作它,比如按下某个按钮,获取里面的文字等。否则你只能分析数据包。
一个例子:
http://www.vckbase.com/document/viewdoc/?id=1075
  • 打赏
  • 举报
回复
bragi523 2009-08-24
[Quote=引用 2 楼 lethe1989 的回复:]
引用 1 楼 tr0j4n 的回复:
这些都很简单,你想想,你填了号码,选了类型,最后点击了那个按钮,做了什么呢?是发送了请求给服务器

你只需要用WinSockExpert进行抓包,就能获得浏览器发送的是那些数据了

然后你在WinInet中进行SendRequest进行模拟,不就可以了吗?不要拘泥于形式


我想用程序实现,不是说抓包工具抓出信息再分析,这个问题应该不会麻烦到要这样做吧
[/Quote]
抓包看一下数据格式就可以SendRequest了
  • 打赏
  • 举报
回复
jyh_baoding 2009-08-24
帮顶
  • 打赏
  • 举报
回复
MoXiaoRab 2009-08-24
没错。你想用WinInet实现就得抓包。

不然你就用更麻烦的CHtmlView,然后调IHtmlDocument2接口慢慢去做
  • 打赏
  • 举报
回复
Trinea 2009-08-24
[Quote=引用 1 楼 tr0j4n 的回复:]
这些都很简单,你想想,你填了号码,选了类型,最后点击了那个按钮,做了什么呢?是发送了请求给服务器

你只需要用WinSockExpert进行抓包,就能获得浏览器发送的是那些数据了

然后你在WinInet中进行SendRequest进行模拟,不就可以了吗?不要拘泥于形式
[/Quote]

我想用程序实现,不是说抓包工具抓出信息再分析,这个问题应该不会麻烦到要这样做吧
  • 打赏
  • 举报
回复
MoXiaoRab 2009-08-24
这些都很简单,你想想,你填了号码,选了类型,最后点击了那个按钮,做了什么呢?是发送了请求给服务器

你只需要用WinSockExpert进行抓包,就能获得浏览器发送的是那些数据了

然后你在WinInet中进行SendRequest进行模拟,不就可以了吗?不要拘泥于形式
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2009-08-24 04:23
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……