我正在查看以下网站:www.example.com
我使用GeckoWebBrowser对象导航到该站点,并每秒拍摄对象的HTML快照。然后我导航DOM以获取我想要的表(div ='tableContainer'),获取此元素的InnerHTML,并将表解析为C#.Net数据集。然后我可以创建“价格”对象并继续处理更新。
我想异步执行此操作:无需在循环中检查元素的HTML。如果没有更新,我不想做任何事情。如果有更新,我想收集HTML(最好只为已更新的行/列/单元格!!)。我该怎么办?
this.geckoWebBrowser1.Window.Scripter.AddEventListener("updateItem_inJavaScriptCode", new EventHandler<DOMJSONStringEventArgs>(OnMyExtensionEvent));
或
Skybound.Gecko.GeckoElement tableContainer = gwb.Document.GetElementById("tableContainer");
tableContainer+= new GeckoDOMElementHTMLCHANGEDUPDATE(methodToCallWithDOMUpdate);`
我很感激在Java或C#.Net或任何指针中对此提出任何建议。
感谢。
答案 0 :(得分:0)
请参阅:https://developer.mozilla.org/en/DOM/DOM_event_reference
据我所知,您所需要的活动都不是标准的一部分,但如果您只为您控制的客户开发,我认为没有任何问题。
这当然是错误的。为什么不跳过HTML抓取步骤直接从网页插入的任何Web服务中获取数据?
我认为DOM只是一个UI模型,它不是数据源。数据来源应该是您的网络服务。