我在Visual Basic中进行简单的Web爬网。我在尝试运行以下代码时收到以下错误代码;
var buttons = document.getElementsByTagName("button"); //returns a nodelist
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener("click", function(event) {
buttonsControl(event.target);
}, false);
}
function buttonsControl(button) {
alert(button.innerHTML);
}
错误是;
未处理的类型&#39; System.InvalidCastException&#39;发生在Microsoft.VisualBasic.dll
其他信息:从字符串&#34;英国转换为派遣军舰 南钦&#34;输入&#39;整数&#39;无效。
问题围绕 omitText.Substring [...] 开始(没有这部分代码可以使用,但提供了我不需要的数据)。
我不确定为什么它会识别整数,因为它是我搜索的子字符串中的子字符串?
作为一个FYI,其中使用的以下代码/变量是;
headingStart;
Do While headingStart <> -1 And _
testText.Substring(testText.Substring(headingStart + 35), 34) <> _
"<span class=^media-prefix voices^>"
航向;
Dim headingStart As Integer = Source.IndexOf(heading)
testText;
这只包含从网站下载的所有HTML / XML,然后将其抓取。
注意: headingStart + 35在标题
中的代码后启动索引注意:左侧功能中的34是我试图省略的文本的长度()
我仍然是VB的学习者,所以我的错误可能是常规的,但是我在这一点上难以接受!
谢谢, 休
答案 0 :(得分:0)
Substring
- 方法接受一个或两个参数,都是整数。
startIndex
length
但是这会返回一个字符串:
testText.Substring(headingStart + 35)
所以你的代码应该如下所示:
testText.Substring(headingStart + 35).Substring(0,34) <> "<span class..."
但你可以用一个Substring
- 呼叫:
testText.Substring(headingStart + 35, 34) <> "<span class..."