实验:用Unity抓取指定url网页中的所有图片并下载保存 (2)

实验:用Unity抓取指定url网页中的所有图片并下载保存

下面是内链的匹配,先要匹配出域名地址:

实验:用Unity抓取指定url网页中的所有图片并下载保存

有了域名地址之后就可以轻松匹配内链地址了:

实验:用Unity抓取指定url网页中的所有图片并下载保存

使用正则表达式需要引入以下命名空间:

实验:用Unity抓取指定url网页中的所有图片并下载保存

利用正则表达式匹配出所有的imgLinks后就可以对其中的图片进行依次下载了。

第三步,对有效的图片url进行下载传输:

实验:用Unity抓取指定url网页中的所有图片并下载保存

你也可以对这些url进行同步下载传输,但这样可能需要增加额外的最大线程数,而且比较难控制整体的下载进度。

具体的传输协程如下:

实验:用Unity抓取指定url网页中的所有图片并下载保存

值得注意的是,并非只有成功下载时才调用Complete方法,即使发生了错误,也需要调用,这样避免了一发生错误,自动下载就自行终止的情况。正常情况下是即使发生了错误,也要跳过执行下一文件的下载任务。

最后一步就是将下载的数据文件流转化为指定类型的文件并保存,这里方法有很多,下面提供一种:

实验:用Unity抓取指定url网页中的所有图片并下载保存

扩展:

有时单个html中的所有图片链接不能完全满足我们的需求,因为html中的子链接中可能也会有需要的url资源地址,这时我们可以考虑增加更深层次的遍历。那就需要先匹配出html中的link地址,然后再得到该link地址的子html源码,如此进行关于深度匹配的循环。

匹配html中的子链接可以通过查找<a>标签的属性href,上面已经给出过该属性的正则匹配表达式,这里只深度匹配了一层以供参考:

实验:用Unity抓取指定url网页中的所有图片并下载保存

测试:这里用深度匹配抓取喵窝主页为jpg格式的图片链接并下载,存到D盘中。(UI就随便做的不用在意)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjjzf.html