如何使用脚本浏览网站以获取信息

时间:2009-10-09 20:14:21

标签: html browser scripting webbrowser-control

我需要编写一个脚本,该脚本可以访问网站,登录,导航到页面并下载(并在此之后解析)该页面的html。

我想要的是独立脚本,而不是控制Firefox的脚本。我只需简单的html导航就不需要任何javascript支持。

如果没有什么比这更容易存在了......那么通过网络浏览器(火狐或野生动物园,我在Mac上)就可以起作用了。

感谢

5 个答案:

答案 0 :(得分:1)

我不了解预先构建的通用刮刀,但您可以通过Google找到它。

编写Web scraper肯定是可行的。在我非常有限的经历中(我只写了几个),我不需要处理登录/安全问题,但在谷歌搜索中我看到了一些处理它们的例子 - 害怕我不记得这些页面的URL 。我确实需要了解一些关于我正在抓的页面的细节;这样可以更容易地编写刮刀,但是,当然,刮刀仅限于在这些页面上使用。但是,如果您只是抓取整个页面,则可能只需要相关页面的URL。

在不知道您可以接受哪种语言的情况下,很难提供更多帮助。 FWIW,我用PHP和Python做过刮刀。正如Ben G.所说,PHP有cURL来帮助解决这个问题。也许还有更多,但我不太了解PHP。 Python有几个您可以选择的模块,包括lxmlBeautifulSoupHTMLParser

编辑:如果您使用的是Unix / Linux(或者,我认为,CygWin)您可以通过wget实现您想要的目标。

答案 1 :(得分:0)

如果您想使用PHP,可以使用cURL函数构建自己的简单网页抓取工具。

如需了解如何入门,请参阅:http://us2.php.net/manual/en/curl.examples-basic.php

答案 2 :(得分:0)

这可能是一个愚蠢的问题,因为我不知道mac,但我们在这里谈论的是什么语言,这也是一个你可以控制的网站,或者像google在查看时可能使用的蜘蛛机器人页面内容?我知道在C#中你可以使用HttpWebRequest和流阅读器加载其他网站上的对象......在java脚本中(这只有在你知道什么是SUPPOSED时才能真正起作用)你可以打开网页作为iframe的源代码,并使用java脚本遍历页面上所有元素的内容......或者更好的是,使用jquery。

答案 3 :(得分:0)

  

我需要编写一个脚本,该脚本可以访问网站,登录,导航到页面并下载(并在此之后解析)该页面的html。

对我来说这听起来像是对登录页面的URL的POST或GET请求可以完成这项工作。使用正确的参数用户名和密码(取决于页面上使用的表单输入名称)在请求中设置,结果将是页面的html,然后您可以随意解析。

这几乎可以用任何语言完成。你想用什么语言?

答案 4 :(得分:0)

我最近在C#项目中完成了你所要求的。如果需要登录,您的第一个请求可能是帖子并包含凭据。响应通常包括cookie,这些cookie在后续请求中保持身份。使用Fiddler查看当您使用浏览器正常登录时,将哪些表单数据(字段名称和值)发布到服务器。完成后,您可以构建一个包含表单数据的HttpWebRequest,并将响应中的cookie存储在CookieContainer中。

下一步是请求您真正想要的内容。这将是附加了CookieContainer的另一个HttpWebRequest。 StreamReader可以读取响应,您可以读取并转换为字符串。

每次我这样做,通常都是一个非常费力的过程来识别所有相关的表单数据并手动重新创建请求。广泛使用Fiddler并比较浏览器在正常使用站点时的请求以及来自脚本的请求。您可能还需要操作请求标头;再次,使用Fiddler手动构建这些,让他们正确地提交和响应,然后编码。祝你好运!