php - 是否有与 Perl 的 WWW::Mechanize 等效的 PHP?

标签 php automation screen-scraping mechanize www-mechanize

我正在寻找一个功能类似于 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/

相关文章:

php - TCPDF 错误 : Unable to create output file

php - 合并两个具有相同 key 对的多维数组

Python 网页抓取 : how to skip url error

python - 在 Scrapy 中使用 start_request 和使用 cookie 在网站上工作的正确方法是什么

java - 从网页获取数据(屏幕抓取)

PHP MySQL 博客标签

php - 在2个不同的php函数中调用MySql Select Query

windows - 自动启动 Windows 录音机

java - 自动调整 3 个参数以最小化标准偏差

google-apps-script - 基于一列删除重复项并在谷歌表格中保留最新条目(同时忽略该列中的空白条目)