【发布时间】:2012-02-04 09:44:50
【问题描述】:
我在试图解决一些问题时遇到了麻烦。我有一个程序,里面有 Webbrowser 控件。 它自动从某些网站进行爬网过程。问题是最近网站更改后我无法修复网络浏览器。
他们更改了网站上的页面导航。当我在 webbrowser 中(在我的应用程序中)手动执行操作时,它不会转到网站上的下一个/上一个页面。它什么都不做......而它在 IE 7/8/9 中正常工作(这次只抛出了脚本错误)。
那么是不是说Webbrowser和IE不完全相似??
很抱歉这里没有显示源代码,我认为这对这里没有帮助。我应该通过哪种方式进行故障排除?为什么页面导航在 Webbrowser 控件中不起作用?
我试图简单地将 Webbrowser 放在新项目中的窗口窗体上,并尝试在网站目录中导航页面 2/3/../10,但它只是更改了页码并且没有导航到它...
编辑:即使我在浏览器中使用鼠标单击手动执行操作,网站也无法正常工作。但在 IE 中可以工作。
EDIT2:我的问题可能不清楚。问题是我无法通过应用程序中的 Webbrowser 控件手动使用鼠标单击来使用网站。我点击它后它会更改页码,但它不会导航到该页面。它保持沉默。我确定 AllowNavigation 属性是正确的。它昨天才起作用,今天在网站更改后停止了...请告诉我我应该用哪种方式对其进行故障排除..我认为 Webbrowser 控件的行为与 Internet Explorer 相同..非常感谢您的任何帮助!谢谢
EDIT3:奇怪的事情...我刚刚加载了扩展网络浏览器并导航到该网站。页面导航面板在那里也不起作用..这是他们身边的错误还是爬虫的某种保护?你怎么看? (http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx)
【问题讨论】:
-
-1:很抱歉您没有包含任何代码。
-
John,我如何检查为什么 webbrowser 控件在同一网站上的行为与 IE 不同?
-
这肯定与你没有发布的代码有关。
-
网络浏览器控件的行为与 IE 不同。我不确定如何控制 C# 控件中的行为,但您在本地实现 IDocHostUIHandler 和 WebOC 尝试进入其主机的其他接口。通过调整这些,您可以让它的行为方式与 IE 相同(因为 IE 就是这样做的)。见msdn.microsoft.com/en-us/library/bb544942(v=VS.85).aspx
-
@jeffamaphone:它的行为不同,取决于您实现的其他代码。这就是为什么我希望他发布他的代码。
标签: c# internet-explorer browser cross-browser