日期:2014-05-20  浏览次数:20630 次

急急急!关于HttpClient的问题,请高手指点
本帖最后由 tengshao 于 2013-09-23 18:28:52 编辑
是这样的,我现在使用HttpClient做了一个网页抓取的的小程序,但是因为速度很快,网站会过段时间要求输入验证码,验证码是图片,很复杂,程序自动识别正确率太低!所以我想人工在控制台输入,回车后让程序继续执行,现在问题来了
我抓取网页时,判断到现在需要验证码,抓取出验证码地址,打开本地浏览器查看验证码图片,然后在控制台输入验证码,提交,返回的信息是验证码过期了。
我觉得是因为网站上的验证码是动态生成的,每次请求都会更新,所以我打开浏览器查看验证码图片时,验证码已经被更新了
不知道这种情况怎么解决
hthpClient httpparser 页面爬虫

------解决方案--------------------
虽然是每次都更新, 但是以你上次访问的为主, 验证码是保存在session当中的,  
可以用HTTPCLIENT先 获取图片, 然后人工输入。
------解决方案--------------------
浏览器和HttpClient分别持有自己的Session,所以,两种途径获得的图片,对应的不是同一个session,服务端因提交的session不同,会识别成两个不同的用户。所以,楼主从浏览器获得图片,从HttpClient里面输入提交,几乎不可能成功。

解决方案:
1. 用程序识别验证码。改善识别算法,增加识别命中率;
2. 编写GUI界面,将验证码显示到界面上,然后输入对应验证码。舍弃浏览器。