2017-04-25 6 views
1

웹 사이트의 HTML 코드를 요청하여 Xcode (Swift 3.0) 및 Alamofire 포드의 앱에서 사용하려고합니다. html 코드 온라인에서 긁어 내고 싶은 데이터 내용은 javascript 웹 플러그인의 형태로 이벤트 달력에서 데이터를 반환하는 div 클래스에 있습니다. 웹 사이트가 정적이 아니기 때문에 html을 요청하고 결과 응답을 문자열로 출력하면 원하는 데이터가 문자열에 포함되지 않습니다. 메시지가 말한다 나타납니다 다음 URLString는 실제 웹 페이지의 URL에 대한 변수alamofire + swift를 사용하여 동적으로로드 된 HTML 가져 오기

func downloadCalendar(){ 
    Alamofire.request(urlString).responseString { (AlamofireResponse) in 
     print(AlamofireResponse.result.value!) 
    } 
} 

: Alamofire를 사용

<noscript>Your browser must support JavaScript to view this content. Please enable JavaScript in your browser settings then try again. <a href="https://www.trumba.com">Events calendar powered by Trumba</a> </noscript>

내 코드처럼 보인다. Alamofire를 사용하여 html로 표시된 모든 HTML을 Xcode로 가져 오는 방법이 있습니까? Alamofire와 함께 할 수 없다면 Swift를 사용하여이 작업을 수행 할 수있는 또 다른 방법이 있습니까?

답변

0

나는

그것은 AlamoFire가 첫 번째로 들어오는 응답을 잡고 솔기는 ....

해결 방법이 ... 불행하게도 아무 소용이, 비슷한 일을 달성하기 위해 노력했습니다 - UIWebView에서 사용 10.0는 웹 페이지 데이터를로드 완료 자바 스크립트에 필요한 초 약 번호가

static let webView = UIWebView() 
self.webView.loadRequest(URLRequest.init(url: URL.init(string:"http://example.com")!) 

DispatchQueue.main.asyncAfter(deadline: .now()+10.0) {[unowned self] in 
     if let html = self.webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML") 
     {print(html)} 
} 

.

그러나 이후 : 당신이 싱글의 웹보기, 수입 UIKit을 사용해야합니다 백그라운드에서 그것을 할 수 없습니다, 그것은 스레드 안전 아니에요 - 그것은 완벽한 솔루션에서 멀리이다 ...

이보다 쉽게 ​​수 있습니다 사이에 프록시 웹 서버를 설정하여 구문 분석을 수행하십시오.

건배!