问题描述
privatevoidwebBrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){if(webBrowser.ReadyState<WebBrowserReadyState.Complete||webBrowser.Url.ToString()==LastUrl)return;//每个URL运行一次LastUrl=webBrowser.Url.ToString();if(LastUrl=="https://s.taobao.com/"){webBrowser.Document.GetElementById("q").InnerText="发电机";HtmlElementhtmle=webBrowser.Document.GetElementsByTagName("button")[0];htmle.InvokeMember("click");//这里点击搜索后}/*问题在下面哪一句获取div。我想的是,上面的点击完搜索后重新加载页面执行后应该有新的DOM数据。可这里没有真实的数据。还是和第一次加载的DOM是一样的?要何解呢?*/varpage=this.webBrowser.Document.GetElementsByTagName("div");}
解决方案
解决方案二:
现在的前端,通过ajax、websocket等等机制的数据服务和html异步访问很多,不是简单地下载页面。
解决方案三:
你要是想“偷窥”点什么东西,那么就深入一点、具体一点,去看懂它的源代码。不要总是套用5年前的那种思路。
解决方案四:
引用2楼sp1234的回复:
你要是想“偷窥”点什么东西,那么就深入一点、具体一点,去看懂它的源代码。不要总是套用5年前的那种思路。
需求是把搜索出的发电机关键词的数据全部抓出来。看了他的源码生存的是在脚本里面。脚本里面的东西有点乱。需要生存后的HTML代码。有啥好思路呢?
解决方案五:
引用3楼chirea的回复:
Quote: 引用2楼sp1234的回复:
你要是想“偷窥”点什么东西,那么就深入一点、具体一点,去看懂它的源代码。不要总是套用5年前的那种思路。需求是把搜索出的发电机关键词的数据全部抓出来。看了他的源码生存的是在脚本里面。脚本里面的东西有点乱。需要生存后的HTML代码。有啥好思路呢?
复杂需求就使用DOM记解析,简单的就直接html文本解析
解决方案六:
判断是否加载完成还真不是个简单事
解决方案七:
如果是脚本生成的东西,要么读懂程序hook,要么setInterval
解决方案八:
用webrequest仔细抓包看结果什么页面的构造提交提取