【发布时间】:2014-04-02 05:02:46
【问题描述】:
所以!
对于我运行的粉丝网站,我还运行了一个网站爬虫 (/xmleader),它从游戏的安全 Web 位置读取信息。它像现在一样完美地工作,但我想让它变得更好,主要是更快。
我面临的第一个问题是如何在保持登录状态的同时维护一个会话,在该会话中您可以执行大量请求(例如每 30 秒 1 到 10 个)。正常的 httprequest 并没有真正起作用,因为登录是用必须与我的登录信息一起提交的令牌。现在解决方案如下:在表单上只放置一个 webbrowser 控件,当登录页面加载(documentCompleted 事件)时,我在文档中填写登录信息并简单地提交它。
现在我可以访问所有我想访问的安全页面,但不能使用我放置在代码中的 HttpWebRequest。但是当我在同一个表单上放置多个 WebBrowserControls 时,它们都可以访问网站的安全部分。这就是我如何放置其中的 6 个来执行并行请求(针对 xml 和 html)以快速访问我帐户中的信息。
这实际上就像一个魅力,你很好地看到 7 个浏览器浏览并分析 domdocument 但自然这会产生很多开销,因为我不需要加载图像和所有闪存等(或导致非常烦人的多个 documentLoaded 事件)。所以我想登录一次,并能够在代码中使用 HttpWebRequest 请求网络浏览器的会话/cookie 信息(或以其他方式登录)。
那么我该怎么做呢?这甚至可能吗,还是我应该完全不同地处理它?
(ps 我都是用 C# 写的)
【问题讨论】:
-
好吧,除了翻录之外,还有更多的逻辑发生。该应用程序还连接到我的网站数据库,以便基本上让我网站上的其他用户查看我的帐户并通过该程序自动与之交互。所以只是翻录还不够。
-
visual web ripper 有一个 API,因此您可以将其与您的应用程序集成
-
虽然我不知道它是否能满足你的所有要求,但看起来你在做的更像是一个浏览器而不是翻录,也许写你的自定义 webrequest?
标签: c# security httpwebrequest webbrowser-control