C# 如何从程序中的站点获取图片?

C# 如何从程序中的站点获取图片?,c#,C#,下午好。 有一个网站可以发布公告 例如,我需要在任何公告页面上找到一个电话号码 电话号码以图片表示。我想获得图片的链接,保存这张图片并识别这张图片。但当我开始在程序中获取图片链接时,我看到这张图片生成了java脚本。 下面是我试图在程序中获取图片链接的代码: ..... HtmlNode bodyNode7 = doc.DocumentNode.SelectSingleNode(@".//*//table[6][@class='objectView']//tr[2]//td"); Console

下午好。 有一个网站可以发布公告 例如,我需要在任何公告页面上找到一个电话号码 电话号码以图片表示。我想获得图片的链接,保存这张图片并识别这张图片。但当我开始在程序中获取图片链接时,我看到这张图片生成了java脚本。 下面是我试图在程序中获取图片链接的代码:

.....
HtmlNode bodyNode7 = doc.DocumentNode.SelectSingleNode(@".//*//table[6][@class='objectView']//tr[2]//td");
Console.WriteLine(bodyNode7.InnerText.ToString());
.....
我使用HtmlAgilityPack库(C#)解析图片链接。 我打开了这个页面()的源代码,看到了生成图片的Javascript:

<tr id="ctl00_cphBody_FlatSell_Obj_adapterObject_trPhones" style="background-color: white">
        <th>Телефоны:</th>
        <td>
                    <script language="javascript" type="text/javascript">document.write(decs("0x88e36b6d468b03acca9737a99ba0fffe05cb3a53de8858b798194826c94719e2193434b3377d69745a1a28879291ecfd69c703de931ac8f551fe22229ef49160"));</script>
        </td>
</tr>
如果我理解正确,这个函数创建了一个带有电话号码的图片链接,或者这个函数创建了这个图片。在这种情况下,函数使用参数“key”。如何创建这个参数,我不知道


问题:如何在我的程序中使用电话号码获取此图片的链接,或使用电话号码下载此图片?

您有多种选择。一种是使用像OpenWebkitSharp这样的库,它在.NET应用程序中承载Webkit的实例,您可以使用它执行页面上的任何脚本,然后检查生成的DOM以提取图像。图书馆位于:

然而,在应用程序中托管webkit意味着加载需要一段时间,并且会消耗大量内存。您需要经常对其进行修补,webkit的更新几乎每周发布一次

假设页面的HTML和Javascript保持不变,另一种选择是使用正则表达式提取特性,然后自己进行转换

您可以使用一个正则表达式来查找“
decs(
”文本,然后提取十六进制编码的文本,然后将其输入到您自己的
decs
函数实现中,这应该很容易做到

function decs(a){
return deco(key,hexToString(a),0,1,iv)
};