我正在测试一个主要基于ajax的Web应用程序,该应用程序使用jsp。一切都是在应用程序端动态创建/分配的。我正在尝试创建某种必须执行以下操作的爬虫/刮刀:
我很容易使用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)?并且,是否有人知道如何从某些录制软件加载请求?
作为旁注,所有这一切所需的时间并不重要,如果需要数月,即使这样也没关系。
感谢。
答案 0 :(得分:1)
使用像autoit这样的工具(它有python绑定......)或者我更喜欢的工具叫做SIKULI(http://sikuli.org/)(它没有python绑定......但它自己的脚本很酷的语言)
答案 1 :(得分:0)
selenium有python绑定(http://seleniumhq.org/);你可以用它。
有什么理由需要基于GUI吗?你可以在GUI之外更容易的时间。
您需要在每个页面上保留可能链接的数据存储区以及它们的位置。使用基于gui的控件,你可以想象在新的浏览器窗口中打开链接,但这可能会失控。