0

我已获准从第三方网站上抓取一些数据。抓取效果很好,但是由于新的登录过程,现在出现了障碍。新的登录过程是智能卡、java 和 jQuery 的混合体。我现在的计划是使用 WatiN 之类的东西来完成最终目标。程序需要做什么...

打开 IE 以允许用户导航到证书登录。用户将使用他们的证书登录。

该应用程序将导航到登录后页面并开始抓取。使用 WatiN,我可以登录并打开登录后页面,但是在那之后我无法做太多事情。

我需要弄清楚的是一种方法来获取我的控制台应用程序,打开 IE 并(手动)登录,然后让爬虫在视觉上或在代码中接管 IE 窗口。理想情况下,我想从 WatiN 的登录后页面获取 cookie 和 HTML 并开始我的报废,由于爬虫中的页面更改,我需要存储 cookie。每次我尝试存储 cookie 时,都会收到错误消息“等待文档可用的超时”有什么想法吗?

Browser browser = new IE();
        browser.GoTo(url);

        browser.WaitForComplete(); //does not seem to work
        string _html = browser.Html;
        var cook= browser.Eval("document.cookie");
4

1 回答 1

0

我刚看到你的问题。我知道晚了,但它可能会帮助别人。我使用以下内容附加到打开的 Firefox 会话。我使用 Firefox,因为它不被用户用于浏览,并且不太可能更改其设置。

Sub AttachToOrOpenNewBrowser(ByRef ff As WatiN.Core.Browser)
    Try
        'If Browser is open then attach to browser
        ff = Browser.AttachTo(Of FireFox)(Find.First)
    Catch ex As Exception
        'Else open new Browser and attach to this NEW browser
        ff = New FireFox(Trim(url))
    End Try
End Sub

我从我的代码中调用这个子。在调用它之前,我检查 ff “什么都不是”,以防它已经按如下方式附加:

Sub MainWork()
   Dim ff As WatiN.Core.Browser
   If ff Is Nothing Then AttachToOrOpenNewBrowser(ff)
   'Do your scrape
End Sub
于 2013-05-24T04:37:02.070 回答