2017-09-18 6 views
0

하나의 사이트에서 데이터를 긁어 내야하는 Scraper에서 작업 중입니다. 나는 매우 간단한 웹 클라이언트 인 downloadString을 사용하여 다른 사이트에서 작동하는 것으로 보이는 데이터를 얻었지만 다음 코드에서 시도한 것과 관련된 문제가 발생했습니다. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다. VB.Net 코드에 따라,하지만 난 C#에서 작업 솔루션을 행복하게 할 수 있습니다..Net WebClient DownloadString이 혼합 된 콘텐츠로 작동하지 않습니다.

Private Function GetHtml() As String 
    Dim mData As String = "" 
    Try 
     'ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate) 
     'ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 

     With mWC 
      mData = .DownloadString("https://www.adorama.com/brands") 
     End With 
    Catch ex As Exception 
     Debug.Print(ex.Message) 

     'With CertificateValidationCallback 
     'The remote server returned an error: (403) Forbidden. 

     'Without CertificateValidationCallback 
     'The request was aborted: Could not create SSL/TLS secure channel. 
    End Try 

    Return mData 
End Function 

Private Shared Function ValidateServerCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As Net.Security.SslPolicyErrors) As Boolean 
    If sslPolicyErrors = Net.Security.SslPolicyErrors.None Then 
     Return True 
    End If 

    Return True 
End Function 
+0

질문에 대한 자세한 정보를 넣을 수 있습니까? 너 뭐하려고? 다른 사이트가 작동하면이 오류가 무엇입니까? –

+0

@ Youssed13이 (가) 내 문제를 해결했습니다. 그의 대답을 확인하십시오. 제 질문에 시간을 내 주셔서 감사합니다. – AmitSri

답변

1

.DownloadString() 메서드를 사용하기 전에이 웹 사이트에 대한 사용자 에이전트를 추가해야합니다.

mWC.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0") 
+0

감사합니다. 내 하루를 저장했습니다. – AmitSri