我已批准从第三方网站上删除一些数据。抓取效果很好,但是现在由于新的登录过程存在障碍。新的登录过程是智能卡,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");
答案 0 :(得分: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