我正在编写代码,我试图从在线DNS报告(http://viewdns.info/dnsreport/?domain=google.com)中获取HTML,但我遇到了一些问题。我实际需要的HTML文件(第231行)的一行是在大约680个字符后自行关闭。然而,重要的一行之后的所有行都正确读取。抓取HTML的代码如下所示,我已经用两种不同的方式尝试了它。 这是我尝试的第一种方式:
Public Function getWebResourceData(ByVal strURL As String) As String
Dim webClient As New System.Net.WebClient
Dim result As String = webClient.DownloadString("http://viewdns.info/dnsreport/?" & TextBox1.Text)
return result
End Function
这是第二个:
Public Function getWebResourceData(ByVal strURL As String) As String
Dim rt As String = ""
Dim wRequest As WebRequest
Dim wResponse As WebResponse
Dim SR As StreamReader
wRequest = WebRequest.Create(strURL)
wResponse = wRequest.GetResponse
SR = New StreamReader(wResponse.GetResponseStream)
rt = SR.ReadToEnd
SR.Close()
return rt
End Function
我真的不确定此时还有什么可能是错的。我也尝试将结果保存到文本文件中以查看是否存在问题,但这也是不正确的。我已经查看了字符串停止的区域的十六进制代码,但没有任何不寻常的东西。分裂发生在背靠背鳄鱼括号(显示为括号)之间:(/ tr)(tr)
但是整个HTML中有很多这些标签,没有任何问题。
答案 0 :(得分:0)
您的两个功能都不会返回他们已阅读的内容。我测试了第二个,它工作正常。
Sub Main
Dim ret = getWebResourceData("http://viewdns.info/dnsreport/?domain=google.com")
Console.WriteLine(ret.Length)
' Output = 21605
End Sub
Public Function getWebResourceData(ByVal strURL As String) As String
Dim rt As String = ""
Dim wRequest As WebRequest
Dim wResponse As WebResponse
Dim SR As StreamReader
wRequest = WebRequest.Create(strURL)
wResponse = wRequest.GetResponse
SR = New StreamReader(wResponse.GetResponseStream)
rt = SR.ReadToEnd
SR.Close()
return rt
End Function