http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 2199|回复: 3

[学生提问] 在做58网站的发帖,求助些问题!关于webbrowser的

[复制链接]
发表于 2016-1-21 13:40:22 | 显示全部楼层 |阅读模式
2.jpg 3.jpg 343.jpg
程序用webbowser做58同城的发帖,里面二手车里,是通过按钮单击事件后,调用js的方法动态在网页里面添加相应的 div弹出框和input的文本框的!
<input readonly="readonly" type="text" id="pinPai" class="txt w140 wrong_color" value="" autocomplete="off" disableautocomplete="">
以下的两个是动态添加的
<input type="text" readonly="readonly" id="cheXic" class="txt w140 wrong_color w_be" value="" autocomplete="off" disableautocomplete="">
<input type="text" readonly="readonly" id="cheXing" class="txt w140 wrong_color w_be" value="" autocomplete="off" disableautocomplete="">


通过第一次加载页面中车辆品牌的参数,赋值给一个combobox,通过选择事件可以找到pinPai这个文本框,达到选择品牌,单击文本框的事件
   string gId = cobpinpai.SelectedValue.ToString();
                string gldstr = cobpinpai.Text.ToString();
                //得到  gldstr 的 数字编码
                //<input readonly="readonly" type="text" id="pinPai" class="txt w140 wrong_color" value="" autocomplete="off" disableautocomplete="">
                Browser.Document.GetElementById("pinPai").InvokeMember("click");

                //Browser.Document.GetElementById("pinPai").Focus();
                Browser.Document.GetElementById("pinPai").SetAttribute("value", gldstr);

                if (Browser.Document != null)
                {
                    string strHref = ""; ;
                    HtmlDocument doc = Browser.Document;
                    HtmlElementCollection elements = doc.All;
                    foreach (HtmlElement element in elements)
                    {
                        if (element.GetAttribute("InnerText") == gldstr)
                        {
                            //MessageBox.Show(element.InnerHtml);
                            //element.Click();cheXic
                            //List<string> asass = new List<string>();
                            element.InvokeMember("Click");//执行按扭操作

                            //等候1秒钟,弹出html的内容
                            Thread.Sleep(500);
            }
}


但是现在无法找到相应的<input type="text" readonly="readonly" id="cheXic" 这个文本框和相应加载的数据,就是第二张图片和第三张图片,所显示的内容!请问有什么方法么?或者大神提供个思路!!


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-1-21 13:48:50 | 显示全部楼层
js加载的拿不到
 楼主| 发表于 2016-1-21 13:59:28 | 显示全部楼层
通过Charles抓包是 ,通过ajax,post 取的数据返回值是json,c#,可以模拟post接收参数,但是怎么去在页面上模拟点击相应的事件  
发表于 2016-2-2 15:34:07 | 显示全部楼层
微软自带的webbrowser 内核比较旧,对于一些js 的请求可能无法处理的,建议换下其他的如WebKit.试试。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-5-9 01:16

© 2014-2021

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