【问题标题】:How to get HTML Source from URL in Swift Anonymously?如何匿名从 Swift 中的 URL 获取 HTML 源代码?
【发布时间】:2019-06-12 11:24:49
【问题描述】:

我正在尝试使用 Swift 从 URL 中抓取 html 代码,但它需要匿名完成。 我的案例的问题是,无论我是否登录网站,内容都会有所不同。我的应用程序有一个 webkit,允许用户查看网站的某个页面。如果他们通过webkit登录,抓取结果与他们没有登录时不同。

我已经阅读并搜索了 StackOverflow 上的大量问题,以了解如何从 URL 获取 HTML 源,我正在使用的可以在这里找到: How To Get HTML source from URL with Swift我也试过不同答案和问题的代码。

guard let getHTMLString = try? String(contentsOf: theUrl, encoding: .utf8).condensingWhitespace() as String else {
        callErrorPage()
        return
    }

我用上面的代码得到了html页面的内容。

但就像我上面提到的,如果用户登录了网站,代码会有所不同。

编辑:我需要代码始终是用户未登录的版本。

【问题讨论】:

  • 检查仅登录用户可用的内容...?
  • 我需要用户未登录时的内容。
  • 在许多情况下,登录信息存储在 cookie 中。如果是这种情况,请使用能够忽略 cookie 的 URLSessionURLRequest。 (httpShouldHandleCookies = false)。无论如何,远程 URL 的 API String(contentsOf 是不合适的。以及为什么要将String 转换为String
  • 你知道,你的问题根本没有任何意义......如果不知道你在寻找什么,其他人怎么会知道...... .?您的问题在当前状态下根本无法回答 - 只能进行推测。
  • @holex 我知道我想要什么。我想获取一个网站的 html 代码。但问题是代码不同,具体取决于我是否登录到该网站。我想要一个未登录用户的代码。

标签: html ios swift


【解决方案1】:

它总是匿名地这样做:

var request = URLRequest(url: URL(string: "http://google.com")!)
request.httpMethod = "GET"
let session = URLSession.init(configuration: URLSessionConfiguration.default)
session.dataTask(with: request) {data,response,error in
    if let data = data {
       let contents = String(data: data, encoding: .ascii)
    }
}.resume()

【讨论】:

  • 这对我有用。我还添加了 request.HTTPShouldHandleCookies = false
猜你喜欢
  • 2014-11-25
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
相关资源
最近更新 更多