首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Puppeteersharp从页面下载图片

使用Puppeteersharp从页面下载图片
EN

Stack Overflow用户
提问于 2020-12-20 01:07:11
回答 1查看 206关注 0票数 0

有没有办法通过Puppeteersharp下载显示在页面上的图片?

我知道我可以使用选择器来检索src,然后使用WebClient或HTTPRequest,但是我想知道是否可以直接这样做。

EN

回答 1

Stack Overflow用户

发布于 2021-02-21 00:00:54

如果有人需要它,下面是我使用的代码:

代码语言:javascript
复制
        Base64Image img = new Base64Image();            
        using (Page page = await parentPage.Browser.NewPageAsync())
        {                
            var tcs = new TaskCompletionSource();
            page.Response += async (sender, e) =>
            {
                string contentType = null;
                string[] imageMimeTypes = { "image/jpeg", "image/png", "image/webp", "image/gif" };

                if (e.Response.Headers.ContainsKey("content-type"))
                    contentType = (string)e.Response.Headers["content-type"].ToLower();

                if (e.Response.Headers.ContainsKey("Content-Type"))
                    contentType = (string)e.Response.Headers["Content-Type"].ToLower();

                if (imageMimeTypes.Any(t => t == contentType))
                {
                    img.ContentType = contentType;
                    

                    await e.Response.BufferAsync().AsTask().ContinueWith(async (data) => img.Bytes = await data);   
                    tcs.TrySetResult();
                }
            };
            await Task.WhenAll(page.GoToAsync(uri.AbsoluteUri), tcs.Task);
            await page.CloseAsync();
        }
        return img;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65372341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档