苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7190|回复: 8

[其他] webbrowser控件 循环填充表单登录完成任务后退出 再进入下一次循环的问题!

[复制链接]
发表于 2013-1-31 08:08:06 | 显示全部楼层 |阅读模式
最近使用webbrowser控件来完成一个自动化的小功能,输入一个手机号登录成功后点击一组按钮后退出,再换下一个手机号,一直到手机号用完。开始没有使用多线程,直接一个循环,发现由于代码执行太快,服务器需要一段时间来响应,导致点击一组按钮的操作无效。使用thread.sleep后 会导致主线程挂起,导致webbrowser控件也无法更新数据,无效。后考虑在循环中创建一个线程,在线程中包含点击一组按钮的操作并退出的代码实现,经过测试后发现,比如有2个手机号,在执行到循环中的thread.start()后主线程继续执行下一次循环,导致表单中的手机号为第二次循环的手机号,然后执行thread中的点击按钮和退出操作,最后导致得不到所需要的结果。如何能实现在循环中的线程执行完毕后再进入下一次循环呢?


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-1-31 10:16:01 | 显示全部楼层
webbrowser是单线程控件,不可能使用多个线程,只能一个一个来,因为他同时只能显示一个网页,而不是你创建的对象可以随便起多个线程,想多个只能开多个窗口实现,我建议你只使用他获取Cookie,然后使用我的HttpHelper类发送请求,这样可以开N个线程使用
发表于 2013-1-31 14:16:57 | 显示全部楼层
加入多个webbrowser控件,每个线程用委托操作对应的web控件。
发表于 2013-1-31 15:41:39 | 显示全部楼层
FXX 发表于 2013-1-31 14:16
加入多个webbrowser控件,每个线程用委托操作对应的web控件。

这个方法可行
发表于 2014-1-21 14:30:35 | 显示全部楼层
站长苏飞 发表于 2013-1-31 10:16
webbrowser是单线程控件,不可能使用多个线程,只能一个一个来,因为他同时只能显示一个网页,而不是你创建 ...

我想要爬的网页是需要加载之后才可以获取完整的源码,那我可以使用webbrowser获取Cookie之后,然后用httphelper来获取源码吗?
发表于 2014-1-21 14:51:34 | 显示全部楼层
luobin 发表于 2014-1-21 14:30
我想要爬的网页是需要加载之后才可以获取完整的源码,那我可以使用webbrowser获取Cookie之后,然后用http ...

当然 不可以,需要解析的部分要自己单独获取
发表于 2014-1-21 15:00:20 | 显示全部楼层
站长苏飞 发表于 2014-1-21 14:51
当然 不可以,需要解析的部分要自己单独获取

那有没有使用webbrowser抓取加载完毕之后网页数据的例子?那个叫什么?
发表于 2014-1-21 22:02:22 | 显示全部楼层
楼主可以分享下吗。。。。
发表于 2014-1-26 03:08:55 | 显示全部楼层
站长苏飞 发表于 2014-1-21 14:51
当然 不可以,需要解析的部分要自己单独获取

苏飞大大,看看我的这篇帖子吧!http://www.sufeinet.com/thread-7814-1-1.html
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-2-28 18:26

© 2014-2021

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