基本上我正在做的是试图从一个 HTML 页面中获取一堆 HTML 链接。
首先,我将 HTML 页面下载为字符串。然后,我在该字符串中搜索一堆 HTML 链接,并将它们粘贴到一个列表中,然后显示在应用程序中。这一切都很好。
接下来,我需要将列表中的每个 HTML 链接下载为字符串,然后再次搜索更多 HTML 链接并将它们也粘贴到列表中。但我收到“500 内部服务器错误”。
这是第一个 DownloadString 的代码:
WebClient client = new WebClient();
data = client.DownloadString(URLMain);
client.Dispose();
HTML 链接是从数据中识别出来的,并粘在一个列表中。然后我使用此代码循环并下载每个链接:
WebClient client2 = new WebClient();
for (int i = 1; i <= listBox1.Items.Count; i++)
{
data = client2.DownloadString(listBox1.Items[i].ToString());
//Search data for HTML link, stick link into list, clear data, and repeat X times.
}
我不确定我做错了什么。对 C# 有点陌生。但正如在第二部分代码中收到 500 内部服务器错误所述。也许我要求太快了?任何帮助将不胜感激,因为这是我完成该计划的最后一个障碍。
- - - - - - - 更新
好的,我有一些进展。我使用在网上找到的一些源代码以不同的方式重写了下载循环。“启动多个异步任务并在它们完成时处理它们”
我不再收到 500 服务器错误,并且我能够下载多个内容而不会出现错误。但我怀疑这些 URL 有问题。我没有得到我应该收到的数据。
我尝试将 URL 列表设置为相同的主 URL,即“kissanime.com/Anime/Accel-World”,并将正确的 html 作为字符串返回。所以我知道下载请求工作正常。
但是当 url 是这个“kissanime.com/Anime/Accel-World/Episode-001?id=4609”时,它不会返回它应该返回的数据。相反,它返回: http: //pastebin.com/C9vH01Lc
尽管当我在浏览器中尝试该确切链接时,它会很好地打开正确的页面。我还尝试将链接更改为“kissanime.com/Anime/Accel-World/Episode-001”,仍然产生相同的结果。
所以 URL 有问题。有任何想法吗?