为了账号安全,请及时绑定邮箱和手机立即绑定

PHP是否等效于Perl的WWW :: Mechanize?

PHP是否等效于Perl的WWW :: Mechanize?

PHP
慕姐4208626 2019-12-15 12:08:54
我正在寻找具有与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中完成上述工作,那将会更快。
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我一直不得不回答这个问题,即使它是一个老文章...我一直在使用PHP curl,并且它在任何地方都无法与WWW:Mechanize之类的东西相提并论,而我正在切换到(我想我将使用Ruby语言实现。)Curl已过时,因为它需要太多的“艰巨工作”来使任何东西自动化,最简单的可编写脚本的浏览器对我来说很有希望,但在测试中,它将无法在大多数Web上运行我尝试过的表格...老实说,我认为PHP在此类抓取,网络自动化领域中是缺少的,因此最好使用另一种语言,因为我在该主题上花费了无数时间,因此可能想将其发布将来会节省别人的时间。



查看完整回答
反对 回复 2019-12-16
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

尝试在PEAR库中查找。如果所有其他方法均失败,请为curl创建对象包装。


您可以这样简单:


class curl {

    private $resource;


    public function __construct($url) {

        $this->resource = curl_init($url);

    }


    public function __call($function, array $params) {

        array_unshift($params, $this->resource);

        return call_user_func_array("curl_$function", $params);

    }

}



查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 284 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信