相关疑难解决方法(0)

是否有与Perl的WWW :: Mechanize相当的PHP?

我正在寻找一个功能类似于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');
Run Code Online (Sandbox Code Playgroud)

要使用HTTP_Client或wget或CURL做同样的事情会有很多工作,我必须手动解析页面以查找链接,找到表单URL,提取所有隐藏字段,等等.我要求PHP解决方案的原因是我没有使用Perl的经验,而且我可以用很多工作构建我需要的东西,但如果我能在PHP中完成上述操作会更快.

php automation screen-scraping mechanize www-mechanize

24
推荐指数
1
解决办法
1万
查看次数

如何使用PHP获取网站的最终,重定向,规范URL?

在链接缩短程序和Ajax的时代,可能有许多链接最终指向相同的内容.我想知道什么是最好的方法来获得PHP的网站的最终,最好的链接,希望有一个库.我无法在Google或GitHub上找到任何内容.

我已经看过这个示例代码,但它不处理像rel ="canonical"元标记或默认ssl端口之类的东西:http://w-shadow.com/blog/2008/07/05/how-to-得到重定向的URL功能于PHP /

Facebook似乎很好地处理了这个问题,你可以看到他们如何遵循301和rel ="canonical"等.要查看Facebook处理它的方式示例,请使用他们的Open Graph工具:

https://developers.facebook.com/tools/debug

并输入以下链接:

http://dlvr.it/xxb0W
https://twitter.com/#!/twitter/statuses/136946408275193856

是否有一个已经预先构建的PHP库,它将检查这些头,解析301重定向,解析rel ="canonical",检测重定向循环并正确抓取最佳结果URL使用?

作为替代方案,我对可以使用的API持开放态度,但更喜欢在我自己的服务器上运行的东西.

php redirect url-shortener canonical-link

13
推荐指数
2
解决办法
5862
查看次数