[想做课表]以前想做一个学校的课表查询系统,通过小偷方式抓取学校教务处网站上的课表,可一直没有成功。现在,又开学了,看了看以前的代码,重新写了一遍,还是不行,怎么回事呢?
[原理]PHP并没有提供发出http请求的功能,只能使用cURL或用fsockopen模拟http请求。学校教务处的课表查询系统使用.NET写的,里面有一些验证机制,比如隐藏的__VIEWSTATE。
[郁闷]我将这些隐藏数据和其他的表单里的数据一起用fsockopen发送,得到的结果却是“此页的状态信息无效,可能已损坏”。上次也是遇到这样的问题,有同学用asp.net做却很正常。
[解决]上网查了别人写的一些代码,发现别人都会用对POST数据进行url编码,恍然大悟,修改自己的代码后,结果正常。
[总结]看来自己对http协议还是很不熟悉,以前就一直怀疑POST的数据有问题,就是没想到还要编码。学习学习……
厉害厉害……虽然都不太懂……鼓掌~~~
仰慕中……
谢谢!
给你WebService吧….
我已经差不多做好了
牛啊牛啊~
请教下楼主,我想用linux下的curl命令来实现表单提交并抓取返回页面,能否给指点下?
我不太懂curl,不好意思
用对POST数据进行url编码
这个怎么实现的?