Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: грабер, ссылки.
 
 автор: racoon   (12.04.2007 в 19:11)   письмо автору
 
 

Вопрос такой...

по примеру рамблера...
по поиску в новостях после 45 стрницы, вот например
http://www.rambler.ru/cgi-bin/news_search?oe=1251&words=%EC%E0%F8%E8%ED%E0&start=46

ссылки идут такого типа.
http://www.rambler.ru/db/news/msg.html?mid=8829725&s=11
в веб интерфейсе при нажатии переходит на
http://www.rambler.ru/news/events/0/8829725.html

как получить из
http://www.rambler.ru/db/news/msg.html?mid=8829725&s=11
вот эту
http://www.rambler.ru/news/events/0/8829725.html
???

   
 
 автор: mr dee   (13.04.2007 в 01:04)   письмо автору
 
   для: racoon   (12.04.2007 в 19:11)
 

Думай в сторону модреврайта

   
 
 автор: racoon   (13.04.2007 в 10:39)   письмо автору
 
   для: mr dee   (13.04.2007 в 01:04)
 

а можно привести пример? или хотябы сказать какой оператор....

   
 
 автор: racoon   (13.04.2007 в 11:09)   письмо автору
 
   для: mr dee   (13.04.2007 в 01:04)
 

почитал про mod_rewrite...это мод делает такой эффект напиример себе на сайт, а мне нужно стянуть инфу по этой ссылке...
ибо если я например делаю file_get_contents("http://www.rambler.ru/db/news/msg.html?mid=8820391")
то контент не копируется так как эта ссылка настроена на переадресацию вот на эту http://www.rambler.ru/news/culture/ukraine/8820391.html
вот мне и надо получить вторую ссылку, чтобы потом уже захватить с нее контент.

   
 
 автор: Trianon   (13.04.2007 в 11:16)   письмо автору
 
   для: racoon   (13.04.2007 в 11:09)
 

file_get_contents не читает заголовки документа. С ним у Вас ничего не выйдет.
Используйте сокеты или curl

   
 
 автор: racoon   (13.04.2007 в 16:24)   письмо автору
 
   для: Trianon   (13.04.2007 в 11:16)
 

каким образом?

попробовал вот так
<?php
$fp = fsockopen("www.rambler.ru", 80);
if ($fp) {

$out = "GET /db/news/msg.html?mid=8826743&s=2 HTTP/1.1\r\n";
$out .= "Host: www.rambler.ru\r\n";
$out .= "Connection: Close\r\n\r\n";

fputs($fp, $out);

echo '<pre>';
while(!feof($fp)) echo fgets($fp);
echo '</pre>';

fclose($fp);
}
?>


думал в ответе сервера будет перенаправляющая ссылка, а нету...

   
 
 автор: Trianon   (13.04.2007 в 17:01)   письмо автору
 
   для: racoon   (13.04.2007 в 16:24)
 

А что ж там в ответе?

   
 
 автор: racoon   (13.04.2007 в 17:13)   письмо автору
 
   для: Trianon   (13.04.2007 в 17:01)
 

HTTP/1.1 302 Moved Temporarily
Server: nginx/0.5.17
Date: Fri, 13 Apr 2007 12:24:14 GMT
Content-Type: text/html
Content-Length: 161
Location: http://www.rambler.ru/news/msg.html?mid=8826743&s=2
Connection: close
Set-Cookie: ruid=AQAAAG52H0awkgAAAdynFAB=; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=.rambler.ru; path=/
P3P: CP="NON DSP NID ADMa DEVa TAIa PSAa PSDa OUR IND UNI COM NAV"

   
 
 автор: Trianon   (13.04.2007 в 17:19)   письмо автору
 
   для: racoon   (13.04.2007 в 17:13)
 

И Вы полагаете, что ответ HTTP/1.1 302 Moved Temporarily вкупе с Location: http://www.rambler.ru/news/msg.html?mid=8826743&s=2 не является перенаправлением?!

   
 
 автор: racoon   (13.04.2007 в 17:38)   письмо автору
 
   для: Trianon   (13.04.2007 в 17:19)
 

поидее при нажатие на http://www.rambler.ru/news/msg.html?mid=8826743&s=2
он перенаправляет на http://www.rambler.ru/news/russia/0/8826743.html

вот второй, куда он перенаправляет, там нету...

   
 
 автор: Trianon   (13.04.2007 в 18:22)   письмо автору
 
   для: racoon   (13.04.2007 в 17:38)
 

Там есть первая. Там есть запрос на установку кукис.
Вы этому последовали?
Пока не последуете - не будет Вам второй ссылки.

   
 
 автор: racoon   (13.04.2007 в 21:46)   письмо автору
 
   для: Trianon   (13.04.2007 в 18:22)
 

хм...
что то типа токого?

SetCookie("ruid","AQAAAPbAH0ZzAAEAAegwGQB=");
SetCookie("expires",".rambler.ru");

и потом еще один запрос делать?

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

   
 
 автор: Trianon   (13.04.2007 в 21:57)   письмо автору
 
   для: racoon   (13.04.2007 в 21:46)
 

Этими функциями Ваш сервер пытается установить кукис на чужом браузере.
А у Вас задача - самому прикинуться браузером. Т.е. воспринять команду установки кук со стороны чужого сервера.

   
 
 автор: racoon   (14.04.2007 в 00:48)   письмо автору
 
   для: Trianon   (13.04.2007 в 21:57)
 

агаа, нашел немного инфы, вот что пытаюсь сделать....

<?php
$hostname = "www.rambler.ru";
$path = "/db/news/msg.html?mid=8826743&s=2";

$fp = fsockopen($hostname, 80, $errno, $errstr, 30);

if (!$fp) echo "$errstr ($errno)<br />\n";
else
{

$headers = "GET $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Connection: Close\r\n\r\n";

fwrite($fp, $headers);

while (!feof($fp))
{
$line = fgets($fp, 1024);

preg_match("|Set-Cookie: ruid=([^~]*);|i",$line,$out);
if(!empty($out[1]))
{
$SID = $out[1];
break;
}
}
fclose($fp);
}

$hostname = "www.rambler.ru";
$path = "/db/news/msg.html?mid=8826743&s=2";
$line = "";

$fp = fsockopen($hostname, 80, $errno, $errstr, 30);

if (!$fp) echo "$errstr ($errno)<br />\n";
else
{


$data = "ruid=$SID";

$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";

$headers .= "Cookie: ruid=$SID;\r\n";
$headers .= "Connection: Close\r\n\r\n";

fwrite($fp, $headers.$data);

while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
echo $line;
?>


выдает вот что
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.5.17
Date: Fri, 13 Apr 2007 20:47:19 GMT
Content-Type: text/html
Content-Length: 161
Location: http://www.rambler.ru/news/msg.html?mid=8826743&s=2
Connection: close

   
 
 автор: racoon   (16.04.2007 в 11:28)   письмо автору
 
   для: racoon   (14.04.2007 в 00:48)
 

уже 3 день немогу норм заставить принимать куки, помогите плз....

   
 
 автор: CrazyAngel   (16.04.2007 в 11:58)   письмо автору
 
   для: racoon   (16.04.2007 в 11:28)
 

может поможет
Подделка cookies и сессий

   
 
 автор: racoon   (16.04.2007 в 13:01)   письмо автору
 
   для: racoon   (14.04.2007 в 00:48)
 

хм, в выше приведеном примере он не запрашивает у меня установить куки уже, это типа работает?
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.5.17
Date: Fri, 13 Apr 2007 20:47:19 GMT
Content-Type: text/html
Content-Length: 161
Location: http://www.rambler.ru/news/msg.html?mid=8826743&s=2
Connection: close

но ссылкуто он всеравно не выдает...

   
 
 автор: racoon   (16.04.2007 в 13:07)   письмо автору
 
   для: racoon   (16.04.2007 в 13:01)
 

может запрос не правельно составлен, потомучто прочитал, что браузер должен сам вроде как запросить страницу...

блин сам с собой разговариваю...((

   
 
 автор: KPETuH   (16.04.2007 в 13:17)   письмо автору
 
   для: racoon   (16.04.2007 в 13:07)
 

попробуйте например

Connection: Keep-Alive

и вообще побольше отправлять заголовков попытайтесь

   
 
 автор: Trianon   (16.04.2007 в 13:27)   письмо автору
 
   для: KPETuH   (16.04.2007 в 13:17)
 

Какой там keep-alive. Автору с HTTP 1.0 не справиться, а Вы предлагаете расширения 1.1 применять. Он там вообще увязнет по самые полуоси. 1.1 - протокол на полтора порядка сложнее.

   
 
 автор: KPETuH   (16.04.2007 в 13:31)   письмо автору
 
   для: Trianon   (16.04.2007 в 13:27)
 

:)) вообще совет посмотреть снифером какие заголовки отправляются и отправлять такие же и в таком же количестве...

   
 
 автор: racoon   (16.04.2007 в 14:56)   письмо автору
 
   для: KPETuH   (16.04.2007 в 13:31)
 

еее я разобрался ))
всем спс

   
 
 автор: tricket   (18.06.2007 в 00:00)   письмо автору
41 байт
 
   для: racoon   (16.04.2007 в 14:56)
 

удалено

   
 
 автор: mr Bin   (18.06.2007 в 01:00)   письмо автору
 
   для: tricket   (18.06.2007 в 00:00)
 

:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования