使用C#与网页交互

11

有一个网站是使用ColdFusion创建的(不确定是否重要)。我需要与这个网站交互,主要是导航到不同的页面并单击按钮。

我想出了两种方法来做到这一点。第一种方法是使用WebBrowser控件。通过它,我可以浏览页面并单击按钮(根据此链接)。

另一种方式是直接与HTML交互。不确定如何实现,但我认为可以单击按钮或使用HTML请求与页面交互。

是否有人推荐哪种方式更好?是否有我没有想到的更好的方式?


2
尝试使用WatiN - MUS
1
正如其他人在下面发布的那样,使用HttpWebRequest是在.NET中爬取网站的常规方法。您可以使用代码轻松地浏览网站并发出post/get请求以模拟交互(按钮推动)。您应该使用Fiddler(免费代理)记录该过程,这将使您能够查看与网站交互的整个过程,以便您可以在代码中重新创建它。HtmlAgilityPack是解析HTML的好工具,根据您要爬取的内容可能需要使用它。 - Zachary
4个回答

8

我会使用 Html AgilityPack 解析HTML,接着使用 HttpWebRequest 发送 POST 和 GET 请求。

虽然使用 WebBrowser 控件模拟点击和导航也是可能的,但是使用 Html AgilityPack 和 HttpWebRequest 可以更好地控制发送的内容。


5

您是否考虑过SeleniumWebDriver API非常好,并允许在网站自动化方面做很多事情。


损坏的链接在这里。 - Darkloki

2

HtmlAguilityPack非常适用于提取网页元素和轻松查找标签。然而,如果您需要远程“操纵”Web会话,我更喜欢使用WatiN。它被称为Web单元测试框架,但它在需要模拟浏览器操作的任何时候都非常有用。此外,它可以很好地远程控制不同的浏览器,足以满足大多数任务的需求(例如查找按钮并按下它,或查找文本字段并填写文本以进行登录)。


WatiN已经失效。它会带你到其他地方,而且不能保证不会劫持你的会话。 :o - Keith Barrows

2
为什么不直接提交URL?这就是按钮点击所做的事情。 使用WebRequest.Create,您可以直接提交到URL。无需加载、解析和“点击”按钮。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接