Написание Yahoo! Бот: Почему я не могу получить веб-страницу на Yahoo! почта с помощью PHP? - PullRequest
0 голосов
/ 08 октября 2009

Я хочу написать бота, который забирает мою почту на Yahoo! но моя первая проблема в том, что я не могу получить веб-страницу, где необходимо ввести логин и пароль. Я делаю это так:

<?php
$the_url = "http://www.yahoo.com/r/l6";

$ua_s = "Opera/9.62 (Windows NT 5.1; U; En) Presto/2.1.1";

$c = curl_init($the_url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_USERAGENT, $ua_s);
$the_page = curl_exec($c);
curl_close($c); 

echo $the_page;
?>

Но когда я это делаю, я получаю пустую страницу.

Ответы [ 4 ]

1 голос
/ 08 октября 2009

Вы можете использовать всплывающий доступ.

1 голос
/ 08 октября 2009

Используйте PEAR :: HTTP_REQUEST это более чисто!

Или лучше PEAR :: Mail_IMAP это не будет нарушать условия ...

0 голосов
/ 08 октября 2009

Короче говоря, ответы, которые вы получите сегодня, могут не сработать завтра, так как Yahoo будет

  1. Ищите такого рода злоупотребления TOS
  2. Может изменить структуру своего приложения, нарушив ваши скрипты

Это означает, что если вы хотите сделать что-то подобное, вы должны научить себя, как

  1. Записывает те же куки, что и браузер
  2. Отправляет обратно те же куки, что и браузер
  3. Отправляет те же данные заголовка HTTP, что и браузер

Когда я делал это, я всегда использовал опции CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR и CURLOPT_HTTPHEADER для отправки всех необходимых заголовков. Более подробную информацию об этом можно найти в руководстве .

Чтобы узнать, какие заголовки вам нужно отправить, я рекомендую расширение http://LiveHTTPHeaders. Это даст вам необработанные заголовки, которые позволят вам узнать, что происходит.

Это нетривиальное задание, и вы нигде не найдете волшебный ответ "просто сделайте это".

0 голосов
/ 08 октября 2009

Возможно, вы хотите установить для параметра CURLOPT_FOLLOWLOCATION значение true, поскольку указанный вами URL-адрес выполняет перенаправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...