c# - 如何从网站下载图片?
问题描述
我正在尝试制作基于“AngleSharp”的解析器。
我使用以下代码进行下载:
var itemsAttr = document.QuerySelectorAll("img[id='print_user_photo']");
string foto_url = itemsAttr[0].GetAttribute("src");
string path = pathFolderIMG + id_source + ".jpg";
WebClient webClient = new WebClient();
webClient.DownloadFile(foto_url, path);
对于页面“type_1” -链接- 代码有效。
对于页面“type_2” -链接- 代码不起作用。
如何下载“type_2”页面的照片?
解决方案
请仔细阅读 AngleSharp 文档,例如,查看我们得到的常见问题解答:
var imageUrl = @"https://via.placeholder.com/150";
var localPath = @"g:\downloads\image.jpg";
var download = context.GetService<IDocumentLoader>().FetchAsync(new DocumentRequest(new Url(imageUrl)));
using (var response = await download.Task)
{
using (var target = File.OpenWrite(localPath))
{
await response.Content.CopyToAsync(target);
}
}
我们使用了类似的配置
var config = Configuration.Default.WithDefaultLoader(new LoaderOptions { IsResourceLoadingEnabled = true }).WithCookies();
var context = BrowsingContext.New(config);
推荐阅读
- database - 使用 JDBC GetConnection 建立数据库连接失败
- quadratic-programming - 不同版本的 CVXPY 会产生不同的结果。
- powershell - 在一定时间后停止 Powershell 命令
- excel - 添加断点时代码会抛出错误,否则不会
- c# - 如何使用 Mongo DB 驱动程序在列表中执行更新或删除
- sql - 使用 Hive sql 连接具有不同列的表
- python - DCGAN Tensorflow 代码不会在 CelebA 数据集上生成人脸
- html - 将鼠标悬停在特定 div 上时显示文本框
- three.js - 为什么另一个渲染器中的 THREE.js gilt 克隆会减慢帧速率?
- ionic-framework - 如何操作 IONIC3 的内部页面历史记录?