好的,所以我一直有很多麻烦 Web浏览器控制我正在处理的一些应用程序。 他们都有同样的问题。我想让应用程序导航的网页读取将页面源文本写入变量。我还需要能够保存文件。
一些源代码:
Public Class Form4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyFolderBrowser As New System.Windows.Forms.FolderBrowserDialog
MyFolderBrowser.Description = "Select the Folder"
MyFolderBrowser.ShowNewFolderButton = False
Dim dlgResult As DialogResult = MyFolderBrowser.ShowDialog()
If dlgResult = Windows.Forms.DialogResult.OK Then
TextBox1.Text = MyFolderBrowser.SelectedPath
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox1.Text = "" Then
MessageBox.Show("You have to select a directory!")
Else
WebBrowser1.Navigate("www.realmofthemadgod.com/version.txt")
System.Threading.Thread.Sleep(3000)
Dim PageSource As String = WebBrowser1.Document.Body.InnerText
WebBrowser1.Navigate("http://www.realmofthemadgod.com/AssembleeGameClient" & PageSource & ".swf")
End If
End Sub
结束班
我遇到的第一件事是它在拉动Document文本之前永远不会等待网页加载。我尝试了许多不同的方法来解决人们发布的不同解决方案。奇怪的是,如果我第二次这样做,它似乎总能奏效。
如果单击Button2,我想将最终生成的网页作为swf保存到所选目录。
感谢您在任何地方寻求帮助
答案 0 :(得分:1)
欢迎使用网页抓取的黑暗艺术。首先,我建议使用WebClient而不是WebBrowser,因为它具有从网站下载数据的离散方法。看起来你的version.txt只包含你想要的数据(并没有多余的HTML),所以我们可以直接下载它。如果你需要解析html,我会使用HtmlAgilityPack。未经测试的代码可以帮助您入门:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox1.Text = "" Then
MessageBox.Show("You have to select a directory!")
Else
Using wc as New WebClient()
Dim version = wc.DownloadString("www.realmofthemadgod.com/version.txt")
Dim swf = "http://www.realmofthemadgod.com/AssembleeGameClient" + version + ".swf"
wc.DownloadFile(swf,"c:\temp\myswf.swf")
End Using
End If
End Sub