【问题标题】:Using VB.NET to Detect Changes in a Web Page使用 VB.NET 检测网页中的更改
【发布时间】:2013-07-19 12:13:40
【问题描述】:

我再次向你们寻求关于我遇到的问题的专业知识和建议。我想知道你们中是否有人知道如何检测网页是否已使用 VB.NET 进行了修改。我需要能够设置一个定期(如每周一次)扫描用户输入的网页的任务,如果网页内容发生了变化,我需要向已更改的个人发送电子邮件(而不是页面本身的确切位置)。我将存储 HTTP 状态,当然还有页面数据本身以及上次修改的日期。当然,这需要非常容错,因为可能要再过一周才能再次运行检查。任何帮助都会很棒。谢谢你。

编辑

对不起,这个问题的新转折。我有更多时间思考我们想要什么。所以...检测网页上的任何更改都会有点愚蠢,因为页面的时间相关元素会经常更改。相反,我想做的是能够检测页面中的文档。例如,如果该页面上有更改的 excel、word 文档或 pdf。所以,我会在这些文档上运行哈希,然后按某种时间表检查是否添加了新文档或是否修改了旧文档。有关如何检测页面上嵌入的文档并运行哈希的任何建议?再次感谢!

【问题讨论】:

  • 你会有什么样的页面 .aspx 或 .html?以及在哪里比较页面是否更改?
  • 可以是 .asp/.aspx 或 .html。至于在哪里比较页面是否已更改,应将其保存为二进制,可以保存为 html、pdf、word doc 等...虽然我不知道如何进行比较
  • 这几乎正是 checksums 的设计目的。

标签: asp.net vb.net web-services http


【解决方案1】:

正如我在评论中提到的,这种工作是 checksums(也称为哈希函数)的设计目的。

您的代码将如下所示:

- for each webpage of interest
  - pull webbpage
  - calculate checksum of contents
  - is current checksum different to last checksum?
    - if yes, send email
  - store new checksum and other appropriate data

.Net 框架有许多可用的校验和。最受欢迎的两个是MD5sha1

【讨论】:

  • 是的,校验和听起来不错。我唯一的问题实际上是获取页面本身的内容。这是我最大的问题。
  • @NewGuy 见this question
  • 啊,这有帮助。谢谢,我会调查的。
  • 所以,现在有些事情发生了变化,因为我对我们正在寻找的东西有了更好的了解。请阅读上面的编辑。谢谢!
  • @NewGuy 你最好创建一个新问题,链接回这个问题。
【解决方案2】:

除了校验和选项之外,还有各种 Diff 函数可以实现这一点,并提供比 changed=true/false 更多的信息。这个问题有更多信息:

How to tell when a web page has changed by x% in VB.net?

【讨论】:

  • 感谢您提供此替代方案。如果我们想要网页的细节,我会记住这一点。
猜你喜欢
  • 2012-06-26
  • 2011-03-19
  • 2014-10-02
  • 2019-05-14
  • 2012-04-15
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多