Помогите с правильным GET запросом CURL

[Удален]
1943

Помогите пожалуйста с помощью CURL сделать правильный, GET запрос :

continue=http://www.google.com/search?hl=en&client=opera&rls=en&q=[Тут мой запрос]&btnG=Search&aq=f&aqi=&aql=&oq=&gs_rfai=&id=[Тут ID введенной капчи]&captcha=[Тут введённая капча]&submit=I%27m+human!

Отсылаемый на страницу http://sorry.google.com/sorry/Captcha

Так чтобы после его выполнения скрипт получал и выводил как результат страницу

http://www.google.com/search?hl=en&client=opera&rls=en&q=[Тут мой запрос]&btnG=Search&aq=f&aqi=&aql=&oq=&gs_rfai=

[Удален]
#1


$ch = curl_init('/ru/forum/528335);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if (!curl_errno($ch))
echo curl_exec($ch);
curl_close($ch);

shell

curl /ru/forum/528335
[Удален]
#2

So1, Спасибо, но google всё равно не отдаёт нужную страницу, хотя ID и капча посылаются правильно на 100%.

[Удален]
#3

может проще через прокси парсить?)

[Удален]
#4
bearman:
может проще через прокси парсить?)

Хорошие прокси еще найти надо. Да говорят и прокси не помогает.

[Удален]
#5

а что отдает гугл? Посмотрите отсылаемые гуглом headers - может быть там нужно по редиректам ходить?

[Удален]
#6
Chezar:
Хорошие прокси еще найти надо. Да говорят и прокси не помогает.

говорят что и в космос нельзя летать, но летают же. мне помогали(листы за 1-2 бакса на пару тысяч проксей), может те, кто говорят - криворукие? хотя конечно если вам целый рунет надо прочекать то тут сложнее :)

[Удален]
#7

к стати у меня в коде ошибка :)

[Удален]
#8
bearman:
говорят что и в космос нельзя летать, но летают же. мне помогали(листы за 1-2 бакса на пару тысяч проксей), может те, кто говорят - криворукие? хотя конечно если вам целый рунет надо прочекать то тут сложнее :)

А где их можно приобрести неподскажете ?

Chezar добавил 07.08.2010 в 02:27

So1,

Я пробовал много различных вариантов, не только Ваш, всё равно чёта не хочет (?

Гугл в хедере отдаёт Location.

Вот код моего скрипта, гляньте если будет желание.

<?php
$getp = $_GET["captcha"];
if(!isset($getp)){
unlink( "countr1.txt" );

function browser($url) {
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Получаем сохраненный после авторизации файл с куками.
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Подставляем куки раз
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Подставляем куки два
$html = curl_exec($ch);
curl_close($ch);
return $html; //Возвращаем ответ
}
$content = browser('http://sorry.google.com/sorry/?continue=http://www.google.com/search%3Fhl%3Den%26client%3Dopera%26rls%3Den%26q%3D%255C%2522%24str_cut%255C%2522%26btnG%3DSearch%26aq%3Df%26aqi%3D%26aql%3D%26oq%3D%26gs_rfai%3D342');
$content =preg_replace("#src=\"#si", "src=\"http://sorry.google.com", $content);

preg_match( "#.image\?id=(.*?)&amp;hl=en\"#is", $content, $vopros ); // Получаем id
echo $vopros[1]. " - Id соответствущее введённой капче<br>";
echo "<img src=\"http://sorry.google.com/sorry$vopros[0] >";
$getp = $_GET["captcha"];

$file_out = "countr1.txt";
$out = fopen( $file_out, "a+" );
if ( fputs( $out, $vopros[1] ) )
{
$out = fclose( $out );
}
print "<form action=\"googlecap.php\" method=\"get\">

<input type=\"text\" name=\"captcha\" value=\"\" size=\"12\">
<input type=\"submit\" name=\"submit\" value=\"Капча!\">

</form>
";
} else
{
#---------------------------------- Делаем get запрос----------------------
$getp = trim($getp);
$getid = file("countr1.txt");
unlink( "countr1.txt" );
$getid[0] = trim($getid[0]);

$zapros = "http://sorry.google.com/sorry/Captcha?continue=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26client%3Dopera%26rls%3Den%26q%3D%255C%2522%24str_cut%255C%2522%26btnG%3DSearch%26aq%3Df%26aqi%3D%26aql%3D%26oq%3D%26gs_rfai%3D342&id=".$getid[0]."&captcha=".$getp."&submit=I%27m+human%21";
echo $zapros;
$ch = curl_init($zapros);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
if (!curl_errno($ch))
echo curl_exec($ch);
curl_close($ch);
}
#---------------------------------- /Делаем get запрос----------------------
echo $getp;
?>

sashka_
На сайте с 27.01.2010
Offline
103
#9

на античате что не помогли ? и в код добавить фолловлокатион ( curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);) , и в реферер желательно закинуть гугловскую страницу

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
[Удален]
#10

да и хедеры лучше установить "человеческие" + хранить сессионные куки.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий