【问题标题】:Automating approved screen scraping with a twist扭曲自动批准的屏幕抓取
【发布时间】:2013-04-12 12:36:05
【问题描述】:

我已获准从第三方网站抓取一些数据。抓取效果很好,但是由于新的登录过程,现在出现了障碍。新的登录过程是智能卡、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");

【问题讨论】:

    标签: c# screen-scraping watin


    【解决方案1】:

    我刚刚遇到了你的问题。我知道晚了,但它可能会帮助别人。 我使用以下内容附加到打开的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 2011-02-20
      相关资源
      最近更新 更多