我想使用Watin抓取到谷歌的下一页,但它有一些错误 这是我的代码:
string[] page = null;
for (int i = 0; i < NumOfPage; i++)
{
page[i] = ('"' + i + '"').ToString();
}
int count=1;
while (count<NumOfPage)
{
ie.Link(Find.ByText(page[count])).Click();
}
count++;
}
但是它有一个错误* “对象引用没有设置为对象的实例。” *在行page[i] = ('"' + i + '"').ToString();
我想知道如果在将int转换为字符串时有一些错误???
答案 0 :(得分:0)
问题是您正在执行整数算术。我怀疑你想要:
page[i] = "\"" + i + "\"";
然后你将执行字符串连接,这肯定是你想要的。
编辑:如果你实际上不需要引号,那就更简单了:
page[i] = i.ToString();
目前您正在获取异常,因为Find.ByText
可能会返回null,因为它找不到链接。
另一方面,我必须说 - 如果您是以编程方式抓取Google,请先检查terms of service吗?
答案 1 :(得分:0)
在线 string [] page = null; 您将页面变量设置为null,您应该初始化它。 你可以像这样改变你的代码
string[] page = string[1];
for (int i = 0; i < NumOfPage; i++)
{
Array.Resize<string> (ref page, i+1);
page[i] = "\"" + i.ToString() + "\"";
}
int count=1;
while (count<NumOfPage)
{
ie.Link(Find.ByText(page[count])).Click();
}
count++;
}
我首先将页面数组设置为1然后在调用之前设置每个数组的值调整大小。 aslo i cahnged另一条线,我认为它会产生错误。