在Curl中按ID或名称获取元素

时间:2012-05-11 09:16:16

标签: php curl element

我的目标网站包含这样的代码

<form>
<input type="text" name="suggest" value="www.google.com">
<input type="submit" value="submit">
</form>

我使用Curl Php

获取此页面
<?php
$url="http://mysite.com"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
$result = curl_exec ($ch); 
echo $result;  
curl_close($ch);
?>

如何使用id或name获取元素值?例如输入名称中的“www.google.com”=“建议”。谢谢你的帮助。

我无法将此代码用于远程,如下所示:

<?php
require 'Path/QueryPath.php';
qp('http://hipfile.com/bbgfom5ej9tm/zakhme_shaneie_haava_dvdrip.wmv.html/')-
  

找到( '[密码= “登录”') - &GT;的WriteHTML();       ?&GT;

并返回此错误

  

致命错误:未捕获的异常'QueryPathParseException',消息'DOMDocument :: load()[domdocument.load]:AttValue:“或'http://hipfile.com/bbgfom5ej9tm/zakhme_shaneie_haava_dvdrip.wmv.html/中预期的,第18行(C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php:2106)'在C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php:2346堆栈跟踪:#0 [内部函数]:QueryPathParseException :: initializeFromError(2,'DOMDocument :: lo ...','C:\ xampplite \ ht ...',2106,数组)#1 C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php(2106):DOMDocument-&gt; load('http: // hipfile ....',0)#2 C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php(179):QueryPath-&gt; parseXMLFile('http:// hipfile ....',NULL ,NULL)#3 C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php(23):QueryPath-&gt; __ construct('http:// hipfile ....',NULL,Array)#4 C:\ xampplite \ htdocs \ test1 \ index.php(3):qp('http:// hipfile ....')#5 {main}在C:\ xampplite \ htdocs \ test1 \ Path \ QueryPath.php中抛出2346

可以帮帮我吗?我使用了两个DOM和simplehtmldom,但没有为我工作。它仅适用于本地页面。

2 个答案:

答案 0 :(得分:3)

您必须使用DOM解析器。最近我一直在使用查询路径:http://querypath.org/

qp($result)->find('[name="name"]');

答案 1 :(得分:1)

试试这个

<?php

$url="http://mysite.com"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
$result = curl_exec ($ch); 
echo $result;  
curl_close($ch);

// include simple_html_dom class here
// which can be downloaded from http://simplehtmldom.sourceforge.net/

$oDom = new simple_html_dom();
$oDom->load($result);
$textFieldValue = $oDom->find('[name="suggest"]',0)->value;
echo $textFieldValue; // will return www.google.com

?>