2014-07-20 45 views
0

我正在试图创建一个简单的程序,将从网站拉文本项目并将其添加到文本框。我只是在试验,并认为我可以做到这一点,但对我来说并不那么容易。我知道如何获取网站的整个源代码(如下)。它有一个我知道的ID,但它没有标签名称。所以我不知道如何让它通过文本阅读,只保留身份证旁边的部分。或者,使用Webbrowser工具然后尝试获取文本项目会更好。我只是想尽一切办法加快速度。我认为我的第一个选择更好,因为这对计算机的内存来说会更好。使用下面的代码,我不知道接下来要添加什么?试图从网站刮物品

Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("Website") 
Dim response As System.Net.HttpWebResponse = request.GetResponse() 
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) 
Dim source As String = sr.ReadToEnd() 

可以说例如id是“name”。查看页面的来源,这是该部分的外观(如下)。我如何解析通过字符串的源代码并找到本节,获取名称Brandon,并将其添加到文本框中。

<span id="name">Brandon</span> 
+0

您可以使用HTML Agility Pack来解析HTML。 – Matthew

回答

0

有几种方法可以解决这个问题。我不会写任何源代码,因为我很久没有使用过Visual Basic了。但是,如果你是谷歌的如何做以下任何事情,你应该找到许多教程和文件。

正则表达式

上的全部源代码使用正则表达式可以帮助你通过搜索它应该是唯一的ID属性找到的元素。正则表达式有时会非常缓慢,这就是为什么如果您必须对大量文本进行大量搜索,应该避免这种情况。

/<([a-z0-9]+)\sid="name"(.*?)>(.*?)<\// - >未测试,但可能会帮助你

字符串的位置

使用一个函数,会发现在字符串中的子串的位置将是有益的。在C中是strstr,在PHP中是strpos。这些类型的函数将为您提供一个字符串的起始位置,其中您的案例将搜索id="name"。一旦你找到了,你会找到标签末尾的位置,然后找到该元素的结束标签。然后,您将执行一个子字符串函数,该字符串函数将从您指定的长度开始在X位置开始的文本,它将是closing tag position - end of opening tag position

HTML/XML库

大概有一吨,将文档解析成某种物体或数组的HTML/XML库。然后你可以遍历这些元素,直到找到你正在寻找的元素。其中一些库甚至可能具有元素ID的搜索功能,类似于JavaScript将为特定元素排序。

这些库可能很难入门,但如果您需要继续查找更多HTML元素,它们将在未来为您提供大量选项。