我正在寻找一个功能类似于 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可以独立于测试框架使用。我已经将它用于许多自动化工作。
关于php - 是否有与 Perl 的 WWW::Mechanize 等效的 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199045/