在Swift中登录站点,然后下载文件
我正在从网站下载CSV文件。我需要在登录时下载此文件。CSV文件提供玩家对幻想运动的预测。当你下载该文件时,它将为你提供五名玩家。但是,如果您购买了高级服务,您将获得所有玩家预测。我购买了premium服务,因此,我尝试在登录到我的帐户时下载此文件 下面的代码仅用五名玩家下载CSV文件。如何登录我的帐户,然后下载此文件在Swift中登录站点,然后下载文件,swift,file,download,urlsession,Swift,File,Download,Urlsession,我正在从网站下载CSV文件。我需要在登录时下载此文件。CSV文件提供玩家对幻想运动的预测。当你下载该文件时,它将为你提供五名玩家。但是,如果您购买了高级服务,您将获得所有玩家预测。我购买了premium服务,因此,我尝试在登录到我的帐户时下载此文件 下面的代码仅用五名玩家下载CSV文件。如何登录我的帐户,然后下载此文件 guard let url = URL(string: "https://rotogrinders.com/projected-stats/nba-player.csv?
guard let url = URL(string: "https://rotogrinders.com/projected-stats/nba-player.csv?site=fanduel") else { return }
let config = URLSessionConfiguration.default
// I don't know what I'm doing here. Also, the user name and password is not correct
let credential = URLCredential(user: "joe", password: "12345", persistence: .forSession)
let protectionSpace = URLProtectionSpace(host: "rotogrinders.com", port: 443, protocol: "https", realm: "Restricted", authenticationMethod: NSURLAuthenticationMethodHTTPBasic)
// I don't know what I'm doing here either.
let credentialStorage = URLCredentialStorage()
credentialStorage.set(credential, for: protectionSpace)
config.urlCredentialStorage = credentialStorage
let task = URLSession(configuration: config).dataTask(with: url) { data, response, error in
guard data != nil else { return }
guard let rows = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)?.components(separatedBy: "\n") else { return }
print(rows)
}
task.resume()
问题是这个站点没有API。它们特别不允许您尝试执行的用例 然而,Python中有一些很棒的工具,可以让您完成您想要做的事情。看看scrapy:
你不能期望所有的网站服务都像你上面写的那样简单,因为它们可能使用一个中间件API层,这是一个自定义API,带有自定义登录函数,调用这些函数可以保护其主数据库和数据不受ppl的影响,而ppl正是你想要做的。