前几天我的刮刀工作得非常好,当我意识到我没有获得足够的记录时,我决定搜索邮政编码,不得不改变我的一些代码。第一个POST和RESPONSE顺利完成,但当我发布以获得下一页结果时,它在响应中失败。
起始代码是......
public void StartScrape()
{
List<string> a = lstPostalCodes();
for (int i = 0; i <= lstPostalCodes().Count; i++)
{
b = a[i];
FirstRequestResponse(b);
if (GoBackToStartSearch == "CONTINUEON")
StartNextRequest(GetViewState(ResponseData));
else
{
WriteDataToFile(ResponseData);
FinalClean();
}
}
}
我调用的方法是StartNextRequest。在StartNextRequest方法中是
private void GetResults(HttpWebRequest wr)
{
using (StreamReader responseReader = new StreamReader(wr.GetResponse().GetResponseStream()))
{
// Add response/results to string
ResponseData = responseReader.ReadToEnd();
}
string strFind = "<li id='nextdisabled'>";
if (ResponseData.Contains(strFind)) GoBackToStartSearch = "BACKTOSTART";
else
GoBackToStartSearch = "CONTINUEON";
}
它抛出的错误是
输入字符串的格式不正确
并指向using(StreamReader ...)
我遇到了其他我似乎修复的错误,但随后它又创建了另一个错误,它与等待写入的字节有关。我使用Fiddler2给我更多关于错误的信息,标题几乎相同,除了1是请求而另一个是响应之外,我没有看到太多差异。
我不知道为什么会这样说,我已经逐步完成了我编写的工作代码以清除所有数据结果,并对两者进行了比较。一切看起来都一样。价值都是一样的。
关于我应该在哪些方面解决此问题的任何想法?