我正在寻找一个功能类似于Perl的
WWW::Mechanize的库,但是对于PHP。基本上,它应该允许我使用简单的语法提交HTTP GET和POST请求,然后解析生成的页面,并以简单的格式返回所有表单及其字段,以及页面上的所有链接。
我知道CURL,但它有一点太准系统,语法很丑陋(吨curl_foo($ curl_handle,…)语句
澄清:
我想要的东西比答案更高级别到目前为止。例如,在Perl中,您可以执行以下操作:
# navigate to the main page $mech->get( 'http://www.somesite.com/' ); # follow a link that contains the text 'download this' $mech->follow_link( text_regex => qr/download this/i ); # submit a POST form,to log into the site $mech->submit_form( with_fields => { username => 'mungo',password => 'lost-and-alone',} ); # save the results as a file $mech->save_content('somefile.zip');
使用HTTP_Client或wget或CURL做同样的事情将会是很多工作,我必须手动解析页面以找到链接,找到表单URL,提取所有隐藏的字段等等。我要求PHP解决方案的原因是我没有Perl的经验,我可以通过大量工作来构建我需要的,但是如果我可以在PHP中执行上述操作,会更快。
解决方法
SimpleTest的
ScriptableBrowser可以独立于测试框架使用。我已经使用它来进行大量的自动化工作。