想做个自动提交表单功能,有个问题想问下,内详

LemonSmile_ 2014-01-27 11:54:45
1.本来想用HttpWebRequest做的,但是那个页面有个hidden的hash值,不知道怎么生成的,还有验证码,其实能获取并提交成功,手动填写验证码我也可以接受,只要能快速在页面input里填上我预先准备好的内容

2.后来想用WebBrowser,DocumentCompleted中分析HtmlDocument来实现
先用一个比较简单的页面试了下,把我要求的内容填进查询框,然后触发查询按钮

这里的时候查询按钮没有name,那我代码里应该如何触发?


...全文
311 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
LemonSmile_ 2014-02-12
  • 打赏
  • 举报
回复
引用 13 楼 liuchaolin 的回复:
[quote=引用 11 楼 liuyuxuan2388 的回复:] [quote=引用 7 楼 liuchaolin 的回复:] 触发点击事件
http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx 这个的验证码可以识别吗?[/quote] 最常用的修复方法是灰度算法+去杂色,转换为黑白图片[/quote]忘记结贴了,还有一个问题,就是验证码用setAttribute后填入内容后,鼠标焦点还在网页的框里,导致验证码框后面没提示验证码正确,提交按钮InvokeMember("click")自然没有效果 让验证码输入框失去焦点用代码可以实现吗?
md5e 2014-01-29
  • 打赏
  • 举报
回复
引用 11 楼 liuyuxuan2388 的回复:
[quote=引用 7 楼 liuchaolin 的回复:] 触发点击事件
http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx 这个的验证码可以识别吗?[/quote] 最常用的修复方法是灰度算法+去杂色,转换为黑白图片
md5e 2014-01-29
  • 打赏
  • 举报
回复
验证码认识比较烦琐,先看他是怎么渲染的,然后根据他的渲染用不同的方法去除修复,最后用OCR识别
LemonSmile_ 2014-01-28
  • 打赏
  • 举报
回复
引用 7 楼 liuchaolin 的回复:
触发点击事件
http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx 这个的验证码可以识别吗?
LemonSmile_ 2014-01-27
  • 打赏
  • 举报
回复
引用 8 楼 flyer_ren 的回复:
HttpWebRequest 抓下数据包,简单搞定 你可以先抓有hidden的那个页面,看看那个值是不是自带的,如果是,获取出来再提交就行,如果不是,那就是js生成,可以分析下js自己写,不会可以引用DLL直接执行js产生那个值。 验证码直接手打或者使用打码平台。如果验证码难度不大,找人写个识别的类
给个页面你,http://211.138.97.133/group/solution/adc/ec/MainFrame.aspx
孤零落叶寒 2014-01-27
  • 打赏
  • 举报
回复
HttpWebRequest 抓下数据包,简单搞定 你可以先抓有hidden的那个页面,看看那个值是不是自带的,如果是,获取出来再提交就行,如果不是,那就是js生成,可以分析下js自己写,不会可以引用DLL直接执行js产生那个值。 验证码直接手打或者使用打码平台。如果验证码难度不大,找人写个识别的类
md5e 2014-01-27
  • 打赏
  • 举报
回复
触发点击事件
LemonSmile_ 2014-01-27
  • 打赏
  • 举报
回复
引用 5 楼 liuchaolin 的回复:
foreach (HtmlElement tag in webBrowser1.Document.GetElementsByTagName("input")){ if (tag.GetAttribute("type") == "submit"){ tag.InvokeMember("click"); } }
还问问,这个InvokeMember("click")的click是怎么辨析的呢?是原网页有名为click的的函数,还是click就表示点击的意思
md5e 2014-01-27
  • 打赏
  • 举报
回复
foreach (HtmlElement tag in webBrowser1.Document.GetElementsByTagName("input")){ if (tag.GetAttribute("type") == "submit"){ tag.InvokeMember("click"); } }
LemonSmile_ 2014-01-27
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
通道没有GetElementsByTagName("input")? [quote=引用 2 楼 liuyuxuan2388 的回复:] [quote=引用 1 楼 liuchaolin 的回复:] 不是有value和type吗?
doc.All[i]没有type和value属性选择,怎么判断value=“查询”[/quote][/quote] 不太明白,你意思是doc.All[i].GetElementsByTagName("sumbit");?
md5e 2014-01-27
  • 打赏
  • 举报
回复
通道没有GetElementsByTagName("input")?
引用 2 楼 liuyuxuan2388 的回复:
[quote=引用 1 楼 liuchaolin 的回复:] 不是有value和type吗?
doc.All[i]没有type和value属性选择,怎么判断value=“查询”[/quote]
LemonSmile_ 2014-01-27
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
不是有value和type吗?
doc.All[i]没有type和value属性选择,怎么判断value=“查询”
md5e 2014-01-27
  • 打赏
  • 举报
回复
不是有value和type吗?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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