我如何在我的程序中从网站获得图片

本文关键字:网站 我的 程序 | 更新日期: 2023-09-27 17:54:28

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

.....
HtmlNode bodyNode7 = doc.DocumentNode.SelectSingleNode(@".//*//table[6][@class='objectView']//tr[2]//td");
Console.WriteLine(bodyNode7.InnerText.ToString());
.....

我使用htmllagilitypack库(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>

在javascript中使用函数decs()来生成图片。下面是代码:

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

如果我理解正确的话,这个函数创建了一个带有电话号码的图片链接,或者这个函数创建了这个图片。在本例中,函数使用参数"key"。如何创建这个参数,我不知道。

问题:如何在我的程序中获得带有电话号码的图片链接或下载带有电话号码的图片?

我如何在我的程序中从网站获得图片

您有几个选择。一种是使用像OpenWebkitSharp这样的库,它在你的。net应用程序中托管一个Webkit实例,你可以使用它来执行页面上的任何脚本,然后检查生成的DOM来提取图像。图书馆位于这里:http://code.google.com/p/open-webkit-sharp/

然而,在你的应用程序中托管webkit意味着它需要一段时间来加载,并且会消耗大量的内存。你需要经常给它打补丁,因为webkit的更新几乎每周都会出来。

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

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

HTH .