2

我正在测试一个主要基于 ajax 并使用 jsp 提供的 Web 应用程序。一切都是在应用程序端动态创建/分配的。我正在尝试创建某种必须执行以下操作的爬虫/刮板:

  1. “单击”给定网页上的每个可用按钮、下拉菜单等
  2. 对于每个请求,记录客户端/服务器交互是什么
  3. 一旦单个网页的所有按钮都被按下(哈?),广度优先搜索从 #2 的第一条记录开始
  4. 继续,直到所有记录都交互过一次。

我很容易使用 python 来点击,虽然 python 不是必需品(我知道 Java 有一些可能很容易工作的东西):

def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

我查过fiddler等录音软件:http ://www.fiddler2.com/fiddler2/

我不知道如何记录交互,但不改变屏幕。例如在 A 页面上,按钮 B 移动到 C 页面,我想点击 B,但留在 A 上(这是一个过于简单的情况)

我完全理解广度优先搜索,尽管我不知道如何使用任何脚本/编程语言(来自#1)加载网页。

那么,是否有人知道如何记录交互(也许将其放在队列中以便于 BFS)?而且,有人知道如何从某些录制软件加载请求吗?

作为旁注,完成所有这些所需的时间并不重要,如果需要几个月,即使这样也可以。

谢谢。

4

2 回答 2

1

使用像 autoit 之类的工具(它确实有 python 绑定......)或者我更喜欢称为 SIKULI (http://sikuli.org/) 的工具(它没有 python 绑定......但是它自己的脚本语言是凉爽的)

于 2012-09-05T16:54:04.797 回答
0

selenium 有 python 绑定(http://seleniumhq.org/);你可以用那个。

有什么理由需要基于 GUI 吗?在 GUI 之外,您将拥有更轻松的时间。

您将需要保留每个页面上可能链接的数据存储以及它们的去向。使用基于 gui 的控件,您可以想象在新的浏览器窗口中打开链接,但这可能会失控。

于 2012-09-05T17:04:45.793 回答