是否可以使用c#代码在网页中自动单击下载按钮

时间:2012-09-10 11:49:22

标签: c# c#-4.0 html-parsing web-scraping

我有一个要求,我必须从网页自动下载文件。有一个下载按钮,它可以重定向到网址。我可以使用代码动态单击该按钮吗? url有一个名为sid的字段,我可以使用firebug看到sid值,但是相同的sid在页面源中是不可见的。如何自动下载文件。

2 个答案:

答案 0 :(得分:1)

如果sid字段在firebug中可见,但它不在源代码中,那么很可能sid稍后会通过javascript添加。在这种情况下,简单地拉动网络源将无济于事。你需要一个能够运行可能需要的javascript代码的无头浏览器。

我假设您正在使用C#来编写刮刀,不幸的是,.NET没有那么多无头浏览器,我认为如果你使用像node.js这样的东西你的工作可能会更容易(我猜,我从来没有在节点中做过任何报废),但here是一个关于.NET的无头浏览器的SO问题。

答案 1 :(得分:0)

当Firebug打开时,请下载合法文件。然后,在Firebug中,单击下载按钮后检查重定向的位置。还要检查标头/ cookie。然后,模拟浏览器在您的程序中执行的操作。如果您知道HTTP的工作原理,则可以(并且相对容易)。如果您不了解HTTP的工作原理(不会花费很长时间)。作为一个经验法则,模仿您在代码中使用浏览器做的事情。如果没有验证码,则不会花费很长时间。