Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 4和Alamofire-未获取所有HTML数据_Html_Alamofire_Swift4 - Fatal编程技术网

Swift 4和Alamofire-未获取所有HTML数据

Swift 4和Alamofire-未获取所有HTML数据,html,alamofire,swift4,Html,Alamofire,Swift4,我希望使用Alamofire和Kanna从站点读取和刮取html数据。 我得到了成功的阅读和我得到的html数据,但没有从网站的所有数据。 我是阿拉莫菲尔的新手,我尝试过几种获取数据的方法,但最终总是得到站点数据的子集。从站点的源代码来看,它有更多的数据,并没有特殊的ajax或其他后台调用 用两种不同的方法编码以获得数据-相同的结果 import Foundation import Alamofire class NetworkProxy { func readIbAnmalData

我希望使用Alamofire和Kanna从站点读取和刮取html数据。 我得到了成功的阅读和我得到的html数据,但没有从网站的所有数据。 我是阿拉莫菲尔的新手,我尝试过几种获取数据的方法,但最终总是得到站点数据的子集。从站点的源代码来看,它有更多的数据,并没有特殊的ajax或其他后台调用

用两种不同的方法编码以获得数据-相同的结果

import Foundation
import Alamofire

class NetworkProxy {

    func readIbAnmalData () {
        let url = "http://ib.anmäl.com"
        let safeURL = url.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)!
        readAndParseHtml(url: safeURL)
    }

    // send request and return response data as string
    func getResponseString (url: String) {
        Alamofire.request(url).responseString { response in
            print("Request: \(String(describing: response.request))")   // original url request
            print("Response: \(String(describing: response.response))") // http url response
            debugPrint("Result: \(response.result)")                         // response serialization result

            if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
                print("Data: \(utf8Text)") // original server data as UTF8 string
            }
        }
    }

    func readAndParseHtml(url:String) {
        Alamofire.request(url).responseString { response in
            print("SUCCESS: \(response.result.isSuccess)")
            if let html = response.result.value {
                self.parseHTML(html: html)
            }
        }
    }

    func parseHTML(html:String) {
        print("HTML: \(html)")
    }
}
我得到的结果是:






我想说,您可能会得到某种形式的重定向(或AJAX调用),但是返回的HTML需要比这更复杂。也许Alamofire正在从HTML内部剥离一些数据?奇怪…和网站的所有者交谈,据他说,我从另一个网站larsgarden.se获取数据。ib.anmäl.com和larsgarden.se都有相同的ip地址,Tomcat服务器将请求传输到正确的位置。我可以传递更多信息(请求标题)以获得正确的结果吗?它一定与我的请求有关,因为这是从java程序工作的,当然也是从正常的web浏览工作的。