| |
|
|
| | Всем привет !
Как реализовать автоматический поиск в гугле ? Какие параметры нужно передать странице http://google.ru/ ? Что-бы результат поиска выводился не в браузер а в скрипт . | |
| |
|
|
| |
|
|
| |
для: dima2207
(05.01.2008 в 18:53)
| | | Для начала, нужно понять, что браузер и скрипт - почти одно и то же. А серверу пофиг кому отдавать. Он отдает в STDOUT.
А вообще, чтобы грабить выдачу с гугла, нужно сильно постараться. Подделать кучу заголовков и вообще, прикинуться юзером. | |
| |
|
|
| |
|
|
| |
для: SHAman
(05.01.2008 в 19:33)
| | | Мне удалось немного переделать форму для поиска :
<form action="http://www.google.ru/search" name=f>
<input name=hl type=hidden value=ru>
<input type=hidden autocomplete="off" maxlength=2048 name=q size=55 title="Поиск вGoogle"value="Строка для поиска"><br><input name=btnG type=submit value="Поиск в Google">
<input type=hidden id=all type=radio name=lr value="" checked></form>
|
как сделать все тоже самое только что-бы параметры передавались из скрипта :
<?
$host = "www.google.ru";
$path = "/search";
if ( !$buffer = getdata($host, $path) ) {
exit("Ошибка"); }
echo $buffer;
// функция получения страницы с удаленного хоста.
function getdata($host, $path)
{
$buffer = true;
$fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "GET $path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $host$path\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
fclose($fp);
}
return $buffer;
}
?>
|
Как сэмитировать передачу $_POST параметров вышеуказанным скриптом ?
Или хотя-бы задержать вывод страницы в браузер (перехватить страницу). | |
| |
|
|
| |
|
|
| |
для: dima2207
(05.01.2008 в 20:27)
| | | >Как сэмитировать передачу $_POST параметров вышеуказанным скриптом ?
>Или хотя-бы задержать вывод страницы в браузер (перехватить страницу).
1. Отослать соотвествующий заголовок
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=32144
Но в Вашем случае я, скорее всего, использовал бы cURL.
2. Использовать буферизацию!
P.S. к дизайнеру: надо наверное, слово "ПОИСК" вверху сделать жирным шрифтом в 25 px красного цвета! | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(05.01.2008 в 20:49)
| | | Я использовал следующий скрипт :
<?
$hostname = "www.google.ru";
$path = "/search";
$line = "";
// Устанавливаем соединение, имя которого
// передано в параметре $hostname
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
// Данные HTTP-запроса
$data =
"f=".urlencode("http://www.google.ru/search")."lr=".urlencode("")."h1=".urlencode("ru")."q=".urlencode("cms")."btnG=".urlencode("Поиск в Google")."\r\n\r\n";
// Заголовок HTTP-запроса
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n"; //Важно!
$headers .= "Content-Length: ".strlen($data)."\r\n"; //Важно!
fwrite($fp, $headers.$data); // Отправляем HTTP-запрос серверу: и заголовок и тело.
// Получаем ответ
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
print_r($line);
?>
|
Но в ответ получаю пустую страницу !
Почему ? Может я гдето неправельно передал запрос ? | |
| |
|
|
| |
|
|
| |
для: dima2207
(05.01.2008 в 21:40)
| | | А Вам и вправду нужен POST-запрос?
Вроде поисковики воспринимают GET :)) | |
| |
|
|
| |
|
|
| |
для: Trianon
(05.01.2008 в 21:49)
| | | Да , дейсвительно ГЕТ ! Спасибо всем ! | |
| |
|
|
| |
|
|
| |
для: dima2207
(05.01.2008 в 18:53)
| | | Вообщето на гугле выложен API-интерфейс для поиска | |
| |
|
|