繁体   English   中英

写雅虎! Bot:为什么我无法在Yahoo!上获取网页? PHP的帮助下发送邮件?

[英]Writing Yahoo! Bot: Why can't I fetch a web page on Yahoo! mail with help of PHP?

我想编写一个在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;
?>

但是,当我这样做时,我会得到空白页。

您可以使用弹出访问。

使用PEAR :: HTTP_REQUEST更干净!

或者更好的PEAR :: Mail_IMAP这不会违反...的条款

您可能想将CURLOPT_FOLLOWLOCATION选项设置为true,因为您提供的URL会进行重定向。

长话短说,今天的答案明天可能会失效,因为雅虎会

  1. 寻找这种TOS滥用
  2. 可能会更改其应用程序的结构,从而破坏您的脚本

这意味着,如果您想做这样的事情,您需要教自己如何

  1. 写下与浏览器相同的cookie
  2. 发送回与浏览器相同的cookie
  3. 发送与浏览器相同的HTTP标头信息

以前,我总是使用CURLOPT_COOKIEFILECURLOPT_COOKIEJAR选项,以及CURLOPT_HTTPHEADER发送回所有需要的标头。 有关更多信息,请参见手册

为了找出您需要发送的标题,我建议使用http:// LiveHTTPHeaders扩展。 它会为您提供原始标题,让您了解正在发生的事情。

这是一项艰巨的任务,在任何地方都找不到神奇的“只需执行此操作”的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM