如何从带有通配符的html文档中下载图像

本文关键字:文档 html 下载 图像 通配符 | 更新日期: 2023-09-27 18:29:28

我正在编写一个c#程序,从HTML文档中提取.jpg图像,但目标图像的名称每隔一段时间就会更改。我是一个非常新的程序员,我不知道如何达到想要的结果。

我正在使用web客户端下载html。

所以我想我有几个问题要问。

  1. 如何使用通配符来假定图像名称的名称和长度
  2. 以及如何将HTML容器从文档中的目标图像中删除

如何从带有通配符的html文档中下载图像

简而言之,使用您所描述的方法:您不能。HTTP要求按名称访问每个请求的资源,您不能要求HTTP服务器返回一组名称与模式匹配的资源(无论是通配符表达式还是正则表达式)。

然而,如果您知道名称存在于特定范围之间并遵循某个模式,那么您可以创建一系列请求并相应地处理404个错误,如下所示:

String resource = "/images/aestheticallyAttractiveHumanFemalesWithoutClothing/img_{0}.jpg";
for(int i=1;i<100;i++) {
    String thisResource = String.Format(CultureInfo.InvariantCulture, resource, i);
    HttpWebRequest request = new (HttpWebRequest)WebRequest.Create(thisResource);
    HttpWebResponse response = request.GetResponse();
    if( response.Status == HttpStatus.OK ) {
        using(Stream rs = response.GetResponseStream())
        using(FileStream fs = new FileStream(Path.Combine("C:''Temp''IRSTaxReturns2011''" + i.ToString() + ".jpg") {
            rs.CopyTo( fs );
        }
    }
}

您应该抓取网页以获取图像url,然后下载图像。对于刮出检查:

https://github.com/jamietre/CsQuery

https://code.google.com/p/fizzler/

https://code.google.com/p/sharp-query/

有没有类似jQuery的CSS/HTML选择器可以在C#中使用?

这将允许您根据属性名称、文档中的位置或这些标识符的组合来选择您关心的元素,然后获得src属性。

  1. 下载网页html
  2. 解析html以获取图像的url
  3. 下载图像

编辑:@Jacob Proffitt如果你同意XPath ,那就太酷了

http://htmlagilitypack.codeplex.com/

如何使用HTML敏捷包