抓取网页上公开可见的图片。涉及知识点:
- 异步编程:async和await进行异步编程,将耗时的操作放在后台线程中进行,并使用await关键字等待操作完成,不阻塞主线程的执行。
- HttpClient:用来发送http请求,并获取响应。可以使用GetAsync发送Get请求,并使用ReadAsStringAsync方法将响应内容读取为字符串。
- HttpResponseMessage:http响应的消息,其中包含响应的状态码、头信息、内容等。使用IsSuccessStatusCode判断响应是否成功。
- HtmlAgilityPack库:用来解析HTML文档,使用LoadHtml方法从字符串中加载html内容,并创建HtmlDocument对象。使用Descendants方法获取指定标签元素。
- Linq查询:获取img元素进行筛选和转换,使用Select获取每个img元素的src属性值,并使用Where进行过滤。
- 图片下载:使用HttpClient.GetAsync方法下载图片,并使用ReadAsStreamAsync方法将下载的图片内容作为流进行处理。使用Path类获取图片文件名和指定保存路径,使用FileStream类创建文件流将图片保存到本地。
- 异常处理:try-catch
using HtmlAgilityPack;
public async void GetImagesFromWeb(string ip,string webPage)//ip,webPage:html网页
{
string webUrl = ip+webPage