远程抓取EMS信息,验证码无效,请指教

joeleemaster 2011-10-31 06:51:10
我用的是HttpClient.class.php这个类,模拟 Http 1.0抓取EMS快递信息,代码在本地测试完全可行,但上传到服务器后出现了问题,我先描述一下我抓取的过程:
1、POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do,得到COOKIE等信息
2、发送COOKIE,并请求验证码图片(正常情况下,如果在Header中设置了正确的COOKIE值,这一步是不会再产生新的COOKIE的)
3、输入验证码,再次POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do得到正确结果

代码在本地测试没问题,但上传到服务器却在第2步出现了问题,在第二步,有时会产生新的COOKIE,而有时又不会。

我开始以为是HTTP协议版本不对,又换了另完全能模拟HTTP 1.1的类进行测试,还是不行。请问这是怎么回事呢?是Header中缺少了什么信息吗?谢谢各位
...全文
393 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohei1982000 2011-11-04
  • 打赏
  • 举报
回复
哪位高手愿意接招,帮忙搞定这个问题,我愿意出100元劳务费。
xiaohei1982000 2011-11-04
  • 打赏
  • 举报
回复
抓包不会用啊,谁能帮帮忙给抓包看看么?地址:http://kuaidiwo.duapp.com/ems.php
官方的地址是:www.ems.com.cn http://www.ems.com.cn/qcgzOutQueryNewAction.do
谢谢各位了啊。
xiaohei1982000 2011-11-04
  • 打赏
  • 举报
回复
还有其他好办法吗?如果贴出代码的话不知道有人回帮忙吗?
xinjian555 2011-11-02
  • 打赏
  • 举报
回复
应该是先访问 http://www.ems.com.cn/servlet/ImageCaptchaServlet 这个取图片,
此时有cookie了,

再连同cookie,表单,验证码,一起POST提交过去,


你第一步,和第二步,都有请求验证码,不就是刷新验证码了?
xiaohei1982000 2011-11-02
  • 打赏
  • 举报
回复
帮顶啊,没人知道原因吗?
binarie 2011-11-02
  • 打赏
  • 举报
回复
用wireshark抓一下。
xiaohei1982000 2011-11-02
  • 打赏
  • 举报
回复
不是这个原因啊,郁闷。
joeleemaster 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaohei1982000 的回复:]

帮顶啊,没人知道原因吗?
[/Quote]

第一步的POST只是请求了qcgzOutQueryNewAction.do并得到COOKIE,但还没有请求验证码文件,所以不存在两次请求验证码。

我这过程基本上跟浏览器是一样的方式。还没有弄明白是怎么回事,呵呵

继续求助
xiaohei1982000 2011-11-01
  • 打赏
  • 举报
回复
高手们都去干嘛了哦?
xiaohei1982000 2011-11-01
  • 打赏
  • 举报
回复
帮顶,我也想知道原因,我也遇到了同样的问题。
黄袍披身 2011-10-31
  • 打赏
  • 举报
回复
有没有缺少什么请使用专业的抓包工具在IE 下抓包 然后再抓自己写的包 进行校对就知道了。这样子除非做过而且跟你一样遇到问题的人否则很难给你准确的意见。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧