0
$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$exp = explode('recaptcha_image',$page);

ID recaptcha_image が見つかりませんがecho $page;、Web ページが表示され、驚くべきことに (画像自体を含む) recpatcha div も表示されます。Curl は recaptcha の画像をロードするべきではありませんが、div を見つけようとすると、何とかロードされますが、そこにはありません。recaptcha 画像の URL を取得する方法はありますか?

4

1 に答える 1

3

このPHP Simple HTML DOM Parserのような HTML パーサーを使用することをお勧めします。次のようなものが機能します。

<?php
$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$html->load($page);
$ret = $html->find('script[src^=http://api.recaptcha.net/]',0);
$src = $ret->src;
//I'm not sure how you get an url with your library, so this might or might not work
$page = $curl->get($src);
preg_match("%challenge\ :\ '([a-zA-Z0-9-_]*)',%", $page, $matches);
$img = "http://api.recaptcha.net/image?c=".$matches[1];
?>

これは最初にページを取得し、スクリプト URL を解析してから、URL 自体に追加されるチャレンジ用にその URL を開きます。画像は$img変数になります。

于 2010-04-06T03:35:33.343 に答える