如何从页面url抓取第一个图像,并沿着书签描述显示它



我正在开发一个社会书签网站在ASP。. NET并在其中显示用户添加的书签。我想将网页的第一个图像与书签一起显示给用户。但我不知道我是怎么得到的。

更新(14.09.11):这是我找到的解决方案:

(HttpWebRequest) HttpWebRequest.Create(TextBox1.Text); 
request.UserAgent = "LPU Crawler"; 
WebResponse response = request.GetResponse(); 
Stream stream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(stream); 
string httptxt = reader.ReadToEnd(); 
extractimgs(httptxt); 
foreach (string pic in pics) 
{ 
    TextBox2.Text += pic; 
    TextBox2.Text += "n"; 
} 
private void extractimgs(string httptxt) 
{ 
    const string match=
        "(?<=img\s+src\=[x27x22])(?<Url>[^x27x22]*)(?=[x27x22])"; 
    MatchCollection matches = Regex.Matches(httptxt,match,
        RegexOptions.IgnoreCase); 
    for (int i = 0; i <= matches.Count - 1; i++) 
    { 
        Match anchorMatch = matches[i]; 
        if (String.IsNullOrEmpty(anchorMatch.Value)) 
        { 
            Response.Write("No Img Found"); 
        } 
        pics.Add(anchorMatch.ToString()); 
    } 
}

您可以使用HTML敏捷性包。

你可以通过CodePlex下载:

http://htmlagilitypack.codeplex.com/

或者你可以使用NuGet:

http://nuget.org/List/Packages/HtmlAgilityPack

使用Html敏捷包,您可以轻松地下载网页并解析其内容。

要检索第一张图片的URL,您可以使用以下LINQ查询:

var url = "http://www.stackoverflow.com";
var document = new HtmlWeb().Load(url);
var imageUrl = (from image in document.DocumentNode.Descendants("img")
                where !String.IsNullOrEmpty(image.GetAttributeValue("src", null))
                select image.Attributes["src"].Value).FirstOrDefault();
if (imageUrl != null)
{
   //...
}

你可以使用图像的地址(SRC属性)将它们包含在你自己的页面中,或者发出一个web请求来下载它们。

一些快速下载图片的代码:

string imageUrl= 
    "http://www.example.com/logo.jpg";
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Image image = Image.FromStream(response.GetResponseStream());
var extension = Path.GetExtension(url).Substring(0, 4);
image.Save(@"c:test" + extension);

最新更新