TC官方合作论坛

 找回密码
 立即注册
查看: 3332|回复: 6

[问题] 网页提取验证码不更新缓存的问题。。

[复制链接]
发表于 2014-2-10 13:42:54 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. //本示例主要是演示TC图片框如何显示网络图片
  2. //本示例主要使用的技术:利用系统自带的com组件下载网络资源
  3. //可以是图片,网页,可执行文件,压缩包等等
  4. 空间 TC系统插件的调用
  5. //默认空间
  6. //退出按钮_点击操作
  7. 功能 退出_点击()
  8.     辅助.退出()
  9. 功能结束

  10. //把网络上的文件下载到本地
  11. //此函数可以下载各种类型的文件,例如exe,图片,网页,压缩,等等
  12. //参数1:文件地址
  13. //参数2:文件本地存放的地址
  14. function 下载文件(文件地址,保存路径)
  15.     http=com("Microsoft.XMLHTTP")//创建一个com对象
  16.     http.Open("get", 文件地址, false)//以get模式打开文件
  17.     http.setRequestHeader("Cache-Control","no-cache")//不使用本地缓存数据,防止每次数据一样
  18.     http.send("")
  19.     t=system.gettickcount()
  20.     while(http.ReadyState != 4)
  21.         help.sleep(100)
  22.         if((system.gettickcount()-t)>5000)
  23.             return false
  24.         endif
  25.     endwhile
  26.     body=http.ResponseBody   
  27.    
  28.     http=null
  29.     stream=com("ADODB.Stream")//文件操作的对象
  30.     stream.Type=1//这个我也不懂,参数就是这么写的
  31.     stream.Open//打开文件流操作
  32.     stream.write(body)//把文件流写入内存(猜测的)
  33.     stream.saveToFile(保存路径,2)//然后把文件保存成二进制数据的指定文件
  34.     stream.Close//关闭文件流操作
  35.     stream=null
  36. endfunction

  37. 功能 读取验证码_点击()
  38.     //这里添加你要执行的代码
  39.     //这里给大家演示的是下载验证码图片,至于验证码地址的获取相信大家都知道怎么操作
  40.     xx="http://captcha.qq.com/getimage?aid=1007901&r=100."&辅助.随机数(10,100)
  41.     edit.settext("远程地址",xx)
  42.     TC系统插件的调用.下载文件(编辑框.获得文本("远程地址"),编辑框.获得文本("本地路径"))
  43.     图片框.设置图片("验证码",编辑框.获得文本("本地路径"))
  44. 功能结束

  45. 空间结束

  46. //空间结束语句
复制代码


以上大致为TC工具自带的示例中的获取QQ网站的验证码图片。我尝试改成了 TC 论坛的, 图片生成地址获取为 “ http://uc.tyuyan.com/VerifyCode.aspx?id=getDate();”
但是,仅只把以上的地址换成TC的地址,也只可以获取一次验证码。。

对比发现,QQ的地址后边是随机生成数字后缀,如果只是用固定的后缀,也只能获取一次。。

求解。。。

回复

使用道具 举报

发表于 2014-2-10 14:23:42 | 显示全部楼层
每次都用网页元素获取一下图片元素的地址就可以了
回复 支持 反对

使用道具 举报

发表于 2014-2-10 18:30:10 | 显示全部楼层
你可以一样设置一个按键。。下载地址不一定要用url 可以选择网络元素。
回复 支持 反对

使用道具 举报

发表于 2014-2-11 20:24:07 | 显示全部楼层
我汗了,后面的那个是个返回动态结果的函数啊……你如果用系统对象,必须自己随机的 把后面的那个函数替换成随机的数字就可以了。所有的验证码都这样  、、、、、= =
回复 支持 反对

使用道具 举报

发表于 2014-2-12 09:32:37 | 显示全部楼层
请采纳如果我的回答帮助到了你 !

这样给你说吧  
一个随机数地址对应一张图片
服务器就是根据访问的这个随机数来回之间切换验证码的
随机数前面的叫文件夹 ,后面的随机数叫文件名
验证码是保存在服务器端同一文件夹下的不同文件名


温馨提示4 : 问问题时请提供详细的信息 , 如代码 , 出现的问题提示等截图 , 这样方便我准确的回答你的问题
回复 支持 反对

使用道具 举报

发表于 2014-2-12 09:34:47 | 显示全部楼层
今非 发表于 2014-2-12 09:32
请采纳←如果我的回答帮助到了你 !

这样给你说吧  

不知道这样理解对不  我不了解服务器 但是我是这样理解的  那么我们可不可以根据这样来秒验证   我没试过 记录下几个验证码地址获取到几个验证码 就这几个验证码之间来回切换  设置程序来自动输入验证码  不知道这样可以不 我没试过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-12 19:28:55 | 显示全部楼层
有随机数的地址没问题,但是,我上边说的是TC论坛的验证码地址,后边是没随机数的吧。。。

看似蛋疼的解决办法就是,自己在软件上搞一个浏览器,然后,每次读的时候刷新网页。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-24 07:57 , Processed in 0.038734 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表