使用 Javascript 或 Web 表单的 Web 爬网站点

Posted

技术标签:

【中文标题】使用 Javascript 或 Web 表单的 Web 爬网站点【英文标题】:Web Crawling Sites with Javascripts or web forms 【发布时间】:2011-02-02 10:12:21 【问题描述】:

我有一个网络爬虫应用程序。它成功爬取了最常见和最简单的网站。现在我遇到了一些类型的网站,其中 html 文档是通过 FORMS 或 javascripts 动态生成的。我相信他们可以被抓取,我只是不知道如何。现在,这些网站不显示实际的 HTML 页面。我的意思是,如果我在 IE 或 firefox 中浏览该页面,HTML 代码与 IE 或 firefox 中的实际内容不匹配。这些站点包含文本框、复选框等...所以我相信它们就是所谓的“Web 表单”。其实我对网络开发不太熟悉,如果我错了,请纠正我。

我的问题是,有没有人和我现在情况相似并且成功解决了这些类型的“挑战”?有人知道有关网络爬虫的书或文章吗?那些属于这些高级类型的网站?

谢谢。

【问题讨论】:

【参考方案1】:

我发现一篇涉及深度网络的文章非常有趣,我认为这回答了我上面的问题。

http://www.trycatchfail.com/2008/11/10/creating-a-deep-web-crawler-with-net-background/

一定会喜欢这个的。

【讨论】:

【参考方案2】:

AbotX 处理开箱即用的 javascript。不过它不是免费的。

【讨论】:

【参考方案3】:

这里有两个不同的问题。

表格

根据经验,抓取工具不会触摸表单。

可能适合为特定网站编写一些东西,提交预先确定的(或半随机的)数据(特别是在为您自己的网络应用程序编写自动化测试时),但一般的爬虫应该不理会它们。

http://www.w3.org/TR/html4/interact/forms.html#h-17.13 上提供了描述如何提交表单数据的规范,可能有一个 C# 库会有所帮助。

JavaScript

JavaScript 是一个相当复杂的野兽。

你可以通过三种常见的方式来处理它:

    编写您的爬虫,使其复制您关心的特定网站的 JS 功能。 自动化网络浏览器 将Rhino 与env.js 一起使用

【讨论】:

嗨大卫,感谢您的信息。这是一个好的开始。你提到了一个通用的爬虫。实际上,这就是我正在设计的。我试图使其尽可能通用。我正在寻找一本关于网络爬虫的好书或任何资源。我找不到一个。你知道吗?再次,tnx。

以上是关于使用 Javascript 或 Web 表单的 Web 爬网站点的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript输入表单数据正则验证规则

表单不能为数字或怎么写js

如何使用 javascript 或 jquery 拦截 Web 应用程序的 Android 数字软键盘上的“开始”按钮

如何在 Web 表单中使用 javascript 隐藏复选框和复选框文本

如何创建仅使用客户端JavaScript的sharepoint数据表单web部件

javascript表单编程