webbrowser,IE.application和httpwebrequest之间有什么选择来解析vb.net中的网页?

时间:2015-06-08 16:34:29

标签: vb.net parsing web

我正在尝试将我编写的VBA代码切换到vb.net来解析网页。

目前我使用:

IE = CreateObject("internetexplorer.application")

在网页中导航。

现在我正在尝试更好(和更快)的代码,我正在考虑使用“System.Threading”同时打开更多的网页(打开每个页面大约需要5-10秒,因为网站很慢)

我阅读了很多指南和帖子但是我阅读的越多,我就越困惑。

编写代码并不容易(我是一个自学成才),我不会浪费时间和精力在错误的方向。

目前我打开一个网页,然后提取一些文字,通过标记获取。

我必须打开两种类型的网页: 1)第一种:我有确切的网址; 2)第二种类型:我需要填写表格以获取我需要的文字。

这两种类型都有好方法吗? 如果不是每个人最好的方式是什么?

1 个答案:

答案 0 :(得分:0)

您应该避免创建Internet Explorer实例或任何与浏览器相关的控件,因为与其他解决方案相比,它会占用太多RAM,特别是如果您要进行并行Web请求。

考虑以下方法:

  • 通过HttpWebRequest执行http请求(你应该将它包装在一个类中)
  • 通过HtmlAgilityPack解析内容(也将其放在一个单独的类中)
  • 根据您在之前的步骤中收集的信息创建一个构建真实URL的类。
  • 重复使用HttpWebRequest的包装类来获取您要查找的网站。

您应该查看.NET-Framework附带的“Task”类,您应该查看“async”-Keyword,以便首先了解有关并行化的选项。

如果你真的想自己处理所有的Threading-Stuff,那么只能直接使用Threads,如果你是第一次这样做的话会很复杂。