脚本宝典收集整理的这篇文章主要介绍了PHP的Scraping Library – phpQuery?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经厌倦了必须将每个输入元素与xpath匹配,如果存在更好的东西,我会很高兴.我遇到过PHPQuery,但手册不太清楚,我无法找到如何发出POST请求.
有人能帮我吗?谢谢.
@Jonathan Fingland:
在browserGet()手册提供的示例中,我们有:
require_once('PHPQuery/PHPQuery.PHP'); PHPQuery::browserGet('http://GOOGLE.COM/','success1'); function success1($browser) { $browser->WebBrowser('success2') ->find('input[name=q]')->val('seArch phrase') ->parents('form') ->submIT(); } function success2($browser) { echo $browser; }
我想所有其他字段都被废弃并在GET请求中发回,我想用PHPQuery :: browserPost()方法做同样的事情,但我不知道该怎么做.我正在尝试抓取的表单有一个输入令牌,我很乐意,如果PHPQuery可以足够聪明地抓取令牌并让我更改其他字段(在这种情况下是用户名和密码),通过POST提交所有内容.
PHPQuery :: post($url,$data,$callback,$tyPE)
和
#data Object,String,将数据参数定义为Object或String. POST请求应该可以使用查询字符串格式,例如:
$data = "username=Jon&password=123456"; $url = "http://www.mysite.com/login.PHP"; PHPQuery::post($url,$type)
由于PHPQuery是一个jquery端口,方法签名是相同的(文档直接链接到jquery站点 – http://docs.jquery.com/Ajax/jQuery.post)
编辑
两件事情:
还有一个phpQuery::browserPost
功能可以更好地满足您的需求.
但是,请注意,仅在submit()
or click()
方法上调用success2回调,因此您可以在此之前填写所有表单字段.
例如
require_once('PHPQuery/PHPQuery.PHP'); PHPQuery::browserGet('http://www.mysite.com/LOGin.PHP','success1'); function success1($browser) { $handle = $browser ->WebBrowser('success2'); $handle ->find('input[name=username]') ->val('Jon'); $handle ->find('input[name=password]') ->val('123456'); ->parents('form') ->submit(); } function success2($browser) { PRint $browser; }
(请注意,这尚未经过测试,但应该可以使用)
以上是脚本宝典为你收集整理的PHP的Scraping Library – phpQuery?全部内容,希望文章能够帮你解决PHP的Scraping Library – phpQuery?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。