我想从网站中提取一些信息。但是当我导航到它时,它动态加载一个php页面之前使用javascript将我连接到服务器。我可以使用开发人员工具按照Chrome中的顺序进行操作。我想通过Webbrowser控件在C#中重现它是最简单的,只需导航到网站即可。然后webbrowser控件必须包含所有的javascript文件,动态加载的php页面中的文本等等。但是,这是真的,他们存储在控制的地方?我似乎无法找到它们。WebBrowser控件 - 查看导航到网站时加载的文件
1
A
回答
0
重新创建在Chrome中实现的整个序列图将是很多工作。但是,“从网站中提取一些信息”可以很容易地完成。
声明:我认为这个问题是对WPF的WebBrower
控制(这将是对的WinForms几乎相同)
你可以得到HTMLDocument
一旦加载页面时,使用:
using mshtml; // <- don't forget to add the reference
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
browser.Navigate("http://google.com/");
browser.LoadCompleted += browser_LoadCompleted;
}
void browser_LoadCompleted(object sender, NavigationEventArgs e)
{
HTMLDocument doc = (HTMLDocument)browser.Document;
string html = doc.documentElement.innerHTML.ToString();
// from here, you should be able to parse the HTML
// or sniff the HTMLDocument (using HTML Agility Pack for instance)
}
}
从这个HTMLDocument
,你可以访问很多属性,包括HTML元素,CSS样式和脚本。我邀请您设置一个断点并查看最适合您需求的内容。
尽管如此,由于您要加载的页面使用JavaScript来填充其内容,因此在LoadCompleted
加注时HTMLDocument
可能不会完成。
在这种情况下,我建议使用计时器轮询,直到内容稳定。
您也可以使用HTMLDocument
注入自己的JavaScript代码,并调用通过WebBrowser.ObjectForScripting
的C#方法,但这会变得更加复杂和难以维护。
相关问题
- 1. Webbrowser控件 - 如何查看在导航到网站时下载的文件(css,js等)列表?
- 2. WebBrowser控件导航返回
- 3. 从查看我的网站阻止Windows Phone WebBrowser控件?
- 4. wp7 webbrowser控件不导航到uri
- 5. WebBrowser控件不导航到链接“文件://”协议的URI
- 6. WebBrowser控件不导航到本地文件
- 7. 使用WebBrowser控件加载PDF文件
- 8. 在C#中WebBrowser控件的特定网站加载缓慢
- 9. WebBrowser控件:导航到该网页已被取消
- 10. Silverlight Webbrowser控件中的块导航
- 11. 等到WebBrowser控件的页面加载
- 12. WinForms WebBrowser控件不加载整个网站
- 13. 导航到webbrowser控件中的xhtml文档打开Chrome
- 14. 如何使用WebBrowser控件导航
- 15. WebBrowser控件导航不工作,Windows 10
- 16. WebBrowser控件:检测导航故障
- 17. 将流加载到Silverlight WebBrowser控件中
- 18. winform中WebBrowser控件的加载事件
- 19. 加载本地HTML文件到一个WebBrowser控件
- 20. 加载外部文件,如CSS到WebBrowser控件
- 21. webbrowser控件查看html文件的图像路径问题
- 22. 如何在加载时导航到用户控件?
- 23. 在WebBrowser控件中查看Excel C#
- 24. 在WebBrowser控件中查看xml节点
- 25. 使用WebBrowser控件下载文件
- 26. Webbrowser控件下载文件通过HttpWebRequest
- 27. 暂停循环,直到WebBrowser导航并加载文档
- 28. 在IE 8中查看网站时无法加载本地JQuery文件
- 29. 收缩导航栏添加时查看
- 30. 导航并从外部网站下载文件
你可以给一个网址,我可以试试吗? –
如果页面使用AJAX或其他动态JavaScript,那么确定元素何时准备好就是非确定性的。至少,你应该在页面的'window.onload'被触发后执行web-scrapping。 [此示例](http://stackoverflow.com/a/19063643/1768303)可能是一个很好的起点。 – Noseratio