首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让WebBrowser控件伪装成火狐浏览器?

如何让WebBrowser控件伪装成火狐浏览器?
EN

Stack Overflow用户
提问于 2012-02-28 09:02:02
回答 3查看 2.3K关注 0票数 0

我正在使用一个使用WebBrowser控件的VB.NET程序来浏览网页。我需要导航的网站突然变得对IE不友好了。因此,我正在考虑尝试让站点看到WebBrowser控件不是IE,而是Mozilla Firefox浏览器。我该怎么做呢?我可以更改控件发送的HTTPrequest标头吗?或者类似的东西?谢谢!

-编辑

嗨,xxbbcc!谢谢你的回答。HttpWebRequest大概是我剩下的唯一选择。我过去经常使用它,但我怀疑它是否能在我需要的网站上工作。

问题是-网站使用了大量的脚本来构建网页,而必须点击的按钮实际上是一个调用脚本的链接,然后页面被进一步构建。最后的HTML代码就是我需要的。

现在的问题比我想象的还要复杂。在请求头中指定什么user-agent绝对无关紧要(多亏了jfmags,我通过Fiddler发现了这一点)。似乎重要的是,在站点将浏览器重定向到HTTPS地址后,Firefox继续发送HTTP/1.1请求,而IE开始发送HTTP/1.0请求,这就是它可能失败的原因。这是由网站所有者设计的。我在网上找到了关于这个的讨论,这里是http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/how-to-force-ie-to-use-http11-over-ssl-through/360eca2d-e290-4078-ad37-7665bec706c4,但它似乎不是决定性的。我曾经使用Mozilla的ActiveX控件,但是现在它已经过时了,因为这个项目已经停止了。

我说的这个网站就是这个臭名昭著的site

我知道,我是个海盗,这很糟糕。通过下载一部电影,我可能会给一些非常富有的大公司造成数百万美元的损失。但在我生活的地方,买不到原声电影是不可能的,它们都被配音弄得残缺不全。那么,我还有什么选择呢?我喜欢电影。

我会试着看看HttpWebRequest是否能做到这一点。

EN

Stack Overflow用户

发布于 2012-02-28 09:13:33

您可以更改请求头部以将浏览器控件伪装为Firefox,但您将获得的响应将是针对Firefox的,而不是针对IE的,因此WebBrowser控件可能无法正确呈现它。

实际上,WebBrowser控件就是IE。

编辑

在您的评论中,您只需要页面的HTML来模拟按钮在该页面上的点击。如果是这种情况,您可以尝试使用HttpWebRequest/HttpWebResponse对象向服务器发送/接收HTTP请求。您可以使用它们来发送任何标头,因此您可以通过发送正确的标头轻松地模拟任何浏览器。您可以使用Fiddler首先导航到站点并将请求保存在Firefox中,然后使用这些请求中的信息来构建HttpWebRequest对象。

一旦您有了HTML,您就可以解析它并随心所欲地做任何事情。如果您需要单击触发回发到服务器的按钮,则可以解析HTML响应中的相关数据,然后构建POST请求。HttpWebRequest可以在同步和异步模式下工作,因此您可以使用几行代码下载页面,也可以控制整个下载过程(这比较复杂)。

我知道这不是你最初想要的,但如果你实际上不需要显示页面内容,这对你来说可能更好。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9474872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档