Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при обработке foto.mail.ru 
:(
    Опции темы
vovka2008
Дата 6.3.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.3.2008

Репутация: нет
Всего: нет



Проблема при обработке foto.mail.ru
Я написал php-парсер для каталога фотографий foto.mail.ru.
Но с каталогом http://foto.mail.ru/catalog/erotic/1.html
возникла сложность. Всё дело в том, что когда
я открываю эту страницу, то происходит редирект на http://foto.mail.ru/catalog/static/warning...%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,
то запущу на него парсер.

Заранее спасибо
PM MAIL   Вверх
Serkys
Дата 6.3.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



PM MAIL   Вверх
flashaa
Дата 6.3.2008, 13:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(vovka2008 @  6.3.2008,  13:45 Найти цитируемый пост)
У меня к Вам вопрос: как программно нажать кнопку "Войти в раздел"

Надо понять, что делается с браузером при нажании на кнопку "войти"
Вот форма
Код

<form action="/warning">
<input type="hidden" value="http://foto.mail.ru/catalog/erotic/1.html" name="back"/>
<input type="hidden" value="/" name="page"/>
<input type="submit" value=" Войти в раздел " name="accept"/>
<input type="submit" value="Отказаться от просмотра" name="decline"/>
</form>

Cоответственно, надо выполнить запрос к foto.mail.ru/warning c этой формой и посмотреть, что придет в ответ, в том числе заголовки.
Если доступ там организован на уровне сессий, то тебе сохранить session_id, т.е. заголовок Set-Cookie, который сервер тебе направляется, а затем просто с этим Cookie: зайти на foto.mail.ru/warning.
PM MAIL   Вверх
MoLeX
Дата 6.3.2008, 13:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



vovka2008 на первый взгляд все просто... для теста удали все куки от майла, зайди по ссылке (подтверди что тебе больше 18) и посмотри какие куки появились.
Код

mrcu
p
ero_accept
.

опытным путем устанавливаем что нам необходима тока ОДНА кука, это ero_accept со значением 1. но вот и все...


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
vovka2008
Дата 7.3.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.3.2008

Репутация: нет
Всего: нет



Код

<?php
/*Я понял, что проблема в куках.
вот исходник скрипта, НЕ работает, хотя куки указал.
на первый взгляд все просто... для теста удали все куки от майла, зайди по ссылке (подтверди что тебе больше 18) 
и посмотри какие куки появились.
mrcu
p
ero_accept
опытным путем устанавливаем что нам необходима тока ОДНА кука, это ero_accept со значением 1. но вот и все... 
Я указал куки с помощью setcookie, но всё равно НЕ работает.
*/
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>";
    }
?>



M
MoLeX
Ну а кто за тебя кнопкой КОД будет пользоваться?



Это сообщение отредактировал(а) MoLeX - 7.3.2008, 15:25
PM MAIL   Вверх
MoLeX
Дата 7.3.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



vovka2008, неправильный подход... ты пытаешься создать куку у юзера, а тебе надо чтобы была имитации куки у скрипта... почитай ссылку


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
awers
Дата 7.3.2008, 15:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



а какое отношение имеет 
Код

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'));

??? Куку поставил браузеру, а файл открыл с помощью php.

читай что такое cURL
PM MAIL WWW ICQ Skype   Вверх
flashaa
Дата 7.3.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(awers @  7.3.2008,  15:33 Найти цитируемый пост)
читай что такое cURL 

Вот пример без курл. Отправляются заголовки+тело и выводится ответ. Тоже с заголовками.
Кстати тут жестко эксплуатируется вера некоторых в то, что получая
http-x-forwarded-for или http-x-real-ip мы узнаем реальный айпи юзера, если он под прокси  smile 
Код

$data = "login=xxx&pass=zzz";
$ip = rand(0,256) . '.' . rand(0,256) . '.' . rand(0,256) . '.' . rand(0,256);

$req =  "POST /headers.php HTTP/1.0\r\n";
$req .= "Host: host.ru\r\n";
$req .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20071008 Ubuntu/7.10 (gutsy) Firefox/2.0.0.6\r\n";
$req .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$req .= "Accept-Language: en-us,en;q=0.5\r\n";
$req .= "Accept-Encoding: gzip,deflate\r\n";
$req .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
$req .= "HTTP-X-REAL-IP: " . $ip."\r\n";
$req .= "HTTP-X-FORWARDED-FOR: " . $ip."\r\n";
$req .= "Content-Type: application/x-www-form-urlencoded\r\n";
$req .= "Content-Length: " . strlen($data) .  " \r\n";
$req .= "\r\n";
$req .= $data;

$fp = fsockopen("host.ru", 80, $errno, $errstr, 2);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
exit;
}

fwrite($fp, $req);

while (!feof($fp)) {
   echo fgets($fp, 128);
}

fclose($fp);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.