如何从此页面解析全文网页?

How to parse full text webpage from this page?

我需要从此页面获取曲目名称,但我得到的响应不完整

var response = await client.GetStringAsync(new Uri("http://parmismedia1.com/musicplayeralbum.aspx?album=666&id=8503&title=farzad-farzin-6-to-che-bashi"));

我使用了 firefox 检查器,发送了 post 请求,使用了移动和桌面用户代理字符串,但仍然没有得到完整的响应。 但我注意到,当我使用该地址在 uc 浏览器上创建下载任务时,我得到了完整的页面文本。 我怎样才能得到完整的页面文本?

我仍在弄清楚 client.GetStringAsync 无法正常工作的原因,但我可以使用 System.Net.HttpWebRequest.

获取页面 html

下面的代码示例。

Uri address = new Uri("http://parmismedia1.com/musicplayeralbum.aspx?album=666&id=8503&title=farzad-farzin-6-to-che-bashi");
HttpWebRequest httpRequest = WebRequest.Create(address) as HttpWebRequest;
httpRequest.UseDefaultCredentials = true;
httpRequest.ServicePoint.Expect100Continue = false;
httpRequest.Proxy.Credentials = CredentialCache.DefaultCredentials;
httpRequest.ProtocolVersion = HttpVersion.Version11;
httpRequest.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0";
httpRequest.Method = "GET";
httpRequest.Timeout = 3000;
HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse;
StreamReader reader = new StreamReader(response.GetResponseStream());

string html = reader.ReadToEnd();

response.Close();

在测试应用程序中,我使用了有效的 URL(在请求中不使用 &,而是直接使用 & 符号 &),响应 returns正确:

var client = new HttpClient();
var response = await client.GetStringAsync(new Uri("https://parmismedia1.com/musicplayeralbum.aspx?album=666&id=8503&title=farzad-farzin-6-to-che-bashi"));

话虽这么说,您的原始查询也 returns 成功,它只是在完全 returns.

之前进行了几次重定向

但是,我确实注意到返回的 HTML 页面并不完全有效,因为它在响应的开头包含错误信息:

The process cannot access the file 'C:\inetpub\PMWebsite\Log0_2016-04-03.log' because it is being used by another process.

<!DOCTYPE html>
<html lang="en" class="app">
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /><title>

您可能需要与网站的创建者核实,以检查是否可以抓取他们的 Web 应用程序内容,如果他们有直接的 API 您可以改用。