如何使用UIWebView自动抓取需要身份验证的页面?

时间:2016-05-05 21:31:47

标签: ios iphone swift uiwebview

我想用swift构建一个iPhone / iPad iOS应用程序,它可以检查特定的URL,获取和解析HTML页面,但不会暴露UIWebView的Web界面视图。如果HTML视图仅显示用于第一次验证用户,之后每次都以编程方式直接访问页面,我将非常高兴。我认为一个示例应用程序就是MailBuzzr for Hotmail&观。

我需要一种网络刮刀,但在某些情况下,例如http://login.live.com进入非常繁琐,即非常复杂的输入形式,两步验证等等。我刚测试从UIWebView访问我的真实账户,即使需要两步验证,它也能很好地工作。但是,我希望以编程方式实现,而不会将视图暴露给用户或以任何可能的方式伪装。

有没有办法使用UIWebView来做到这一点?替代?

我的代码非常简单:

email_hidden?

PS:我尝试使用Mozilla的Web Developer插件检查实时登录页面,无法理解参数(NAP,ANON,t)及其计算方法。我认为可以做到但是使用UIWebView可能更简单。

1 个答案:

答案 0 :(得分:1)

我认为您必须做的一件事是注入一些JavaScript来填充字段并触发登录过程。

您可以使用这样的方法(伪代码):

NSString *javaScript = @"var field = document.getElementsByTagName('#password')[0];
// Set it.
// Trigger the form submission.";
[webView stringByEvaluatingJavaScriptFromString:javaScript];

然后你可以通过获取内容(伪代码)来刮取页面:

NSString *html = [webView stringByEvaluatingJavaScriptFromString:  @"document.body.innerHTML"];