.Net WebClient DownloadString不能使用混合内容
问题描述:
我正在使用刮刀,其中我需要从一个站点刮取数据。我已经厌倦了非常简单的webclient 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
答
在使用.DownloadString()方法之前,您必须为此网站添加User-Agent。
mWC.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0")
+0
谢谢,你救了我的一天。 – AmitSri
您能否提出更多关于您的问题的信息。你想做什么?如果其他网站的工作是什么这个错误? –
@ Youssed13已解决我的问题。请检查他的答案。感谢您给我的问题留出时间。 – AmitSri