我经常发现自己需要为内部目的做一些简单的屏幕抓取(即我使用的第三方服务只能通过
HTML发布报告).我现在至少有两三个例子.我可以使用apache httpclient并创建所有必要的屏幕抓取代码,但需要一段时间.这是我平常的过程:
>在网站上打开Charles Proxy,看看发生了什么.
>开始使用Apache HttpClient编写一些java代码,处理cookie,多个请求
>使用Jericho HTML来处理HTML的解析.
我希望我能“快速记录我的会话”,然后参数化从会话到会话的事情.想象一下,只需使用Charles来获取所有HTTP请求,然后参数化相关的查询字符串或者post params.我有一个可重用的http脚本.
有没有这样做呢?我记得当我曾经在一家大公司工作过,曾经是一个工具,我们使用Mercury Interactive所说的Load Runner,它基本上有一个很好的方式来记录一个http会话并使其可重用(用于测试目的).不幸的是,这个工具非常昂贵.
解决方法
如果您愿意使用
Python,我还会看Selenium和/或BeautifulSoup.还有一个很好的测试工具
Twill用于自动网站测试,可以做你想要的.它也是用Python编写的,它有一个Python API,但也有一个简化的命令语言可以使用它.以下是Twill文档中的一个例子::
setlocal username <your username> setlocal password <your password> go http://www.slashdot.org/ formvalue 1 unickname $username formvalue 1 upasswd $password submit code 200 # make sure form submission is correct!