我想从Pirate Bay的搜索查询中获得源代码,但是我在我的代码中使用这个功能并没有返回任何结果:
WebClient webpage = new WebClient();
string source= webpage.DownloadString("http://thepiratebay.sx/search/documentary/0/99/0");
我想从Pirate Bay的搜索查询中获得源代码,但是我在我的代码中使用这个功能并没有返回任何结果:
WebClient webpage = new WebClient();
string source= webpage.DownloadString("http://thepiratebay.sx/search/documentary/0/99/0");
这是一个快速测试:
xaml:
<Label Content="{Binding ElementName=window_name, Path=SourceTest}"></Label>
<Label Content="{Binding ElementName=window_name, Path=SourceTest2}"></Label>
代码:
string source_url = "http://thepiratebay.sx/search/documentary";
WebClient webpage = new WebClient();
SourceTest = webpage.DownloadString(source_url);
if (SourceTest == "")
SourceTest = "stream was empty.";
source_url = "http://www.google.com";
webpage = new WebClient();
SourceTest2 = webpage.DownloadString(source_url);
if (SourceTest2 == "")
SourceTest2 = "stream was empty.";
你的URL将返回一个空字符串,而谷歌则会提供你正在寻找的源代码。
编辑:正如我所料,你需要像Web浏览器一样标识自己。这可以通过你的查询实现:
string source_url = "http://thepiratebay.sx/search/documentary/0/99/0";
using (var webpage = new WebClient())
{
webpage.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
SourceTest = webpage.DownloadString(source_url);
}
string source_url = "http://thepiratebay.sx/
将会起作用,所以我猜测他们可能正在过滤非浏览器的请求? - Noctis