Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HtmlAgilityPack空白图像_C#_.net_Html Agility Pack - Fatal编程技术网

C# HtmlAgilityPack空白图像

C# HtmlAgilityPack空白图像,c#,.net,html-agility-pack,C#,.net,Html Agility Pack,我使用HtmlAgilityPack从url内容中获取标题、描述和图像。除了获取图像外,一切正常。有时图像URL只返回空白图像。我创建了一个测试方法,以确定图像是否存在: var request = (HttpWebRequest)WebRequest.Create(imageUrl); request.Credentials = CredentialCache.DefaultCredentials; request.Method = "HEAD"; var response = (HttpWe

我使用HtmlAgilityPack从url内容中获取标题、描述和图像。除了获取图像外,一切正常。有时图像URL只返回空白图像。我创建了一个测试方法,以确定图像是否存在:

var request = (HttpWebRequest)WebRequest.Create(imageUrl);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "HEAD";
var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
//do something

但有时我只是得到一张空白的图像。响应很好,我得到了正确的
HttpStatusCode
ContentType=“image/png”
ContentType=“image/jpg”
。当我通过web浏览器导航到该图像url时,我也有同样的想法。我在考虑用最小长度拍摄图像,但这不是个好主意。有人知道如何“排除”此类空白图像吗?

首先,检查您是否使用了正确的方法,因为HEAD只获取标题,而没有实际内容。您应该使用GET

另外,您说过有时使用浏览器会得到相同的空白图像,如果是这样的话,您正在解析和获取图像的站点可能会阻止其站点中图像的热链接

热链接阻止是通过检查图像的引用器(包含图像的站点)来完成的,当您将图像URL放入导航器时,它是空的

下载图像时,您可以向站点发送正确的参考信息,然后您可能会获得正确的图像,如下所示:

var request = (HttpWebRequest)WebRequest.Create(imageUrl);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
request.Referer = urlOfThePageYouJustParsed;
var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
//do something

我尝试了您的解决方案,但不幸的是,它似乎不起作用。可能主机希望Cookie从发送到您首先请求的页面。请检查此响应,看看它现在是否有效。