我正在测试一个主要基于 ajax 并使用 jsp 提供的 Web 应用程序。一切都是在应用程序端动态创建/分配的。我正在尝试创建某种必须执行以下操作的爬虫/刮板:
- “单击”给定网页上的每个可用按钮、下拉菜单等
- 对于每个请求,记录客户端/服务器交互是什么
- 一旦单个网页的所有按钮都被按下(哈?),广度优先搜索从 #2 的第一条记录开始
- 继续,直到所有记录都交互过一次。
我很容易使用 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)?而且,有人知道如何从某些录制软件加载请求吗?
作为旁注,完成所有这些所需的时间并不重要,如果需要几个月,即使这样也可以。
谢谢。