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

Форум PHP

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

 

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

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

тема: Проблема при обработке foto.mail.ru
 
 автор: vovka-2008   (06.03.2008 в 12:56)   письмо автору
 
 

Проблема при обработке foto.mail.ru
Я написал php-парсер для каталога фотографий foto.mail.ru.
Но с каталогом http://foto.mail.ru/catalog/erotic/1.html
возникла сложность. Всё дело в том, что когда
я открываю эту страницу, то происходит редирект на http://foto.mail.ru/catalog/static/warning.html?back=http://foto.mail.ru%2F%63%61%74%61%6C%6F%67%2F%65%72%6F%74%69%63%2F%31%2E%68%74%6D%6C
,а на других каталогах (например Авто) такого нету.
Этот редирект ведёт на "Предупреждение-если Вам меньше 18 лет, то закройте браузер".
И в редиректе две кнопки: "Войти в раздел" и "Отказаться от просмотра".
Когда нажимаю "Войти в раздел", то попадаю на http://foto.mail.ru/catalog/erotic/1.html
и тогда можно применять парсер.
У меня к Вам вопрос: как программно нажать кнопку "Войти в раздел"
и после этого получить содержимое http://foto.mail.ru/catalog/erotic/1.html
при помощи языка PHP?

А после того как я получу содержимое http://foto.mail.ru/catalog/erotic/1.html,
то запущу на него парсер.

Заранее спасибо

   
 
 автор: mihdan   (06.03.2008 в 16:01)   письмо автору
 
   для: vovka-2008   (06.03.2008 в 12:56)
 

Может ему HTTP_REFERER подсунуть

   
 
 автор: vovka-2008   (07.03.2008 в 14:46)   письмо автору
 
   для: mihdan   (06.03.2008 в 16:01)
 

<?php
/*вот исходник скрипта, НЕ работает, хотя куки указал.
на первый взгляд все просто... для теста удали все куки от майла, зайди по ссылке (подтверди что тебе больше 18)
и посмотри какие куки появились.
mrcu
p
ero_accept
опытным путем устанавливаем что нам необходима тока ОДНА кука, это ero_accept со значением 1. но вот и все...
*/
setcookie("ero_accept", "1", time() + 6000, "foto.mail.ru", ".foto.mail.ru", 0);
setcookie("ero_accept", "1", time() + 6000, ".foto.mail.ru", ".foto.mail.ru", 0);
setcookie("ero_accept", "1", time() + 6000, "/", ".foto.mail.ru", 0);
setcookie("ero_accept", "1", time() + 6000, "foto.mail.ru", "foto.mail.ru", 0);

$text=join('', file('http://foto.mail.ru/catalog/erotic/1.html'));
//$text=join('', file('http://foto.mail.ru/catalog/static/warning.html?back=http://foto.mail.ru/catalog/erotic/1.html&page=/&accept'));
//$text=join('', file('http://foto.mail.ru/catalog/static/warning.html?back=http://foto.mail.ru/catalog/erotic/1.html'));
echo $text;
$picture_id='<div class="picture">';
for ($i=strpos($text, $picture_id); !empty($i); $i=strpos($text, $picture_id, $i+strlen($picture_id)))
{
/*ищем ссылку на полную версию картинки*/
$k=$i+strlen($picture_id);
$k=strpos($text, "href", $k);
$k=$k+6;
$t1=$k;
$t2=strpos($text, '"', $k);
$link = substr($text, $t1, $t2-$t1);
//echo $link."<br>";
/*ищем ссылку на эскиз*/
$k=$t2;
$k=strpos($text, 'src="', $k);
$k=$k+5;
$t1=$k;
$t2=strpos($text, '"', $k);
$eskiz = substr($text, $t1, $t2-$t1);
//echo $eskiz."<br><br>";
echo '<a href="view_foto.php?page='.$link.'" target="_blank"><img src="'.$eskiz.'" alt="картинка" height="120" width="120" BORDER=0></a>';
echo "<br><br>";
}
?>

   
 
 автор: cheops   (07.03.2008 в 15:14)   письмо автору
 
   для: vovka-2008   (07.03.2008 в 14:46)
 

Функция file не отправляет cookie и вообще не ведёт себя как браузер, идентифицируясь как PHP-скрипт. В таких задачах лучше ориентироваться либо на сокеты, либо на расширение CURL.

   
 
 автор: KirillKiev   (07.03.2008 в 15:20)   письмо автору
 
   для: vovka-2008   (07.03.2008 в 14:46)
 

Пользуйтесь cURL если он есть...
приатачил файл - посмотрите - там класс для использования cURL (не помню где качнул :))
в farefox есть такой плагин - live HTTP HEADER
открыл им вашу нужную страницу http://foto.mail.ru/catalog/erotic/1.html
посмотрел какие куки пихает браузер
повторил в php - все работает
собственно можно и без класса - на эту тему куча литературы

Кстати только что проверил, если убрать в строке
$cURL->headers[] = "Cookie: mrcu=118547D12DFF3DA20D2D1A00000A; p=0w0IAFp71gAA; ero_accept=1";
все кроме
$cURL->headers[] = "Cookie: ero_accept=1";
тоже все работает :)

   
Rambler's Top100
вверх

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