2010-12-20 158 views
2

我该如何去做下面的事情......通过Web服务API进行Web Scraper?

我想为我的应用程序构建一个web服务来从外部网站获取一段数据,这需要用户登录。该网站没有公开API,因此是刮板的原因。

有没有图书馆来执行以下功能?或我该怎么办?

  • 自动化填写表单,自动点击
  • 自动化提交按钮
  • 检查哪个URL用户已经登陆 ,并重定向用户从标签URL
  • 抓取数据。

编辑:什么即时要求是否有一个Web服务,库等,使其更容易执行屏幕抓取/自动化功能?

+3

如果网站不提供API - 那么他们不希望他们的内容被盗用。伙计们,没有**合法**开发人员的职位,不涉及任何形式的盗窃? – zerkms 2010-12-20 02:16:41

+0

mint.com - 该银行没有API,mint.com使用自动化后端软件登录银行从用户的银行网站提取用户的账单。 (例如) – 001 2010-12-20 03:12:07

+2

那么让我直接得到这个 - 你的屏幕刮银行网站?向我打招呼。 – RPM1984 2010-12-20 03:29:36

回答

1

您应该查看表单的来源并找出数据的提交方式,而不是填写表单并虚拟点击按钮。在大多数情况下,您可以简单地使用登录数据发送发布请求。如果除了简单的发布请求之外还有其他特殊的内容,我使用this addon来确定您看不到的请求正在执行。使用C#,我会使用HttpWebRequest类,因为它为您处理Cookie。

0

如果网站不禁止机器人,您可以使用YQL来模拟您需要的一切。然而,这可能有点困难或不可能,因为你基本上必须在JS中实现纯文本浏览器。