C# 优化Web爬网
我正在开发一种快速工具,可以从网页上抓取图像。目前,我使用WebClient获取页面的源数据,从源代码中解析图像URL,然后使用WebClient.DownloadFile将它们单独下载到文件夹中。这可能需要很长时间。C# 优化Web爬网,c#,image,performance,webclient,C#,Image,Performance,Webclient,我正在开发一种快速工具,可以从网页上抓取图像。目前,我使用WebClient获取页面的源数据,从源代码中解析图像URL,然后使用WebClient.DownloadFile将它们单独下载到文件夹中。这可能需要很长时间。 我知道大部分时间都是由于我的连接和下载数据造成的。 是否有其他更有效的方法来实现这一点,无论是C#HTML解析库还是其他什么?您可以使用多个线程,这将打开多个到网页的并发HTTP连接 一个好的方法是实现生产者/消费者模式:让一个线程获取并解析包含图像的HTML,然后将图像URL排
我知道大部分时间都是由于我的连接和下载数据造成的。
是否有其他更有效的方法来实现这一点,无论是C#HTML解析库还是其他什么?您可以使用多个线程,这将打开多个到网页的并发HTTP连接 一个好的方法是实现生产者/消费者模式:让一个线程获取并解析包含图像的HTML,然后将图像URL排入类似BlockingCollection的队列。让多个线程从队列中读取图像URL并同时下载图像 如果您是最前沿的,这个类If问题非常适合于TPL数据流(BlockingCollection的替代方案)