问题描述
1.本来想用HttpWebRequest做的,但是那个页面有个hidden的hash值,不知道怎么生成的,还有验证码,其实能获取并提交成功,手动填写验证码我也可以接受,只要能快速在页面input里填上我预先准备好的内容2.后来想用WebBrowser,DocumentCompleted中分析HtmlDocument来实现先用一个比较简单的页面试了下,把我要求的内容填进查询框,然后触发查询按钮这里的时候查询按钮没有name,那我代码里应该如何触发?
解决方案
本帖最后由 liuyuxuan2388 于 2014-01-27 11:57:40 编辑
解决方案二:
不是有value和type吗?
解决方案三:
引用1楼liuchaolin的回复:
不是有value和type吗?
doc.All[i]没有type和value属性选择,怎么判断value=“查询”
解决方案四:
通道没有GetElementsByTagName("input")?引用2楼liuyuxuan2388的回复:
Quote: 引用1楼liuchaolin的回复:
不是有value和type吗?doc.All[i]没有type和value属性选择,怎么判断value=“查询”
解决方案五:
引用3楼liuchaolin的回复:
通道没有GetElementsByTagName("input")?Quote: 引用2楼liuyuxuan2388的回复:
Quote: 引用1楼liuchaolin的回复:
不是有value和type吗?doc.All[i]没有type和value属性选择,怎么判断value=“查询”
不太明白,你意思是doc.All[i].GetElementsByTagName("sumbit");?
解决方案六:
foreach(HtmlElementtaginwebBrowser1.Document.GetElementsByTagName("input")){if(tag.GetAttribute("type")=="submit"){tag.InvokeMember("click");}}
解决方案七:
引用5楼liuchaolin的回复:
foreach(HtmlElementtaginwebBrowser1.Document.GetElementsByTagName("input")){if(tag.GetAttribute("type")=="submit"){tag.InvokeMember("click");}}
还问问,这个InvokeMember("click")的click是怎么辨析的呢?是原网页有名为click的的函数,还是click就表示点击的意思
解决方案八:
触发点击事件
解决方案九:
HttpWebRequest抓下数据包,简单搞定你可以先抓有hidden的那个页面,看看那个值是不是自带的,如果是,获取出来再提交就行,如果不是,那就是js生成,可以分析下js自己写,不会可以引用DLL直接执行js产生那个值。验证码直接手打或者使用打码平台。如果验证码难度不大,找人写个识别的类
解决方案十:
解决方案十一:
引用8楼flyer_ren的回复:
HttpWebRequest抓下数据包,简单搞定你可以先抓有hidden的那个页面,看看那个值是不是自带的,如果是,获取出来再提交就行,如果不是,那就是js生成,可以分析下js自己写,不会可以引用DLL直接执行js产生那个值。验证码直接手打或者使用打码平台。如果验证码难度不大,找人写个识别的类
给个页面你,http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx
解决方案十二:
引用7楼liuchaolin的回复:
触发点击事件
http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx这个的验证码可以识别吗?
解决方案十三:
验证码认识比较烦琐,先看他是怎么渲染的,然后根据他的渲染用不同的方法去除修复,最后用OCR识别
解决方案十四:
引用11楼liuyuxuan2388的回复:
Quote: 引用7楼liuchaolin的回复:
触发点击事件http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx这个的验证码可以识别吗?
最常用的修复方法是灰度算法+去杂色,转换为黑白图片
解决方案十五:
引用13楼liuchaolin的回复:
Quote: 引用11楼liuyuxuan2388的回复:
Quote: 引用7楼liuchaolin的回复:
触发点击事件http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx这个的验证码可以识别吗?
最常用的修复方法是灰度算法+去杂色,转换为黑白图片
忘记结贴了,还有一个问题,就是验证码用setAttribute后填入内容后,鼠标焦点还在网页的框里,导致验证码框后面没提示验证码正确,提交按钮InvokeMember("click")自然没有效果让验证码输入框失去焦点用代码可以实现吗?