如何使用 PHP 制作机器人以登录并在网站上执行操作 [关闭]

Posted

技术标签:

【中文标题】如何使用 PHP 制作机器人以登录并在网站上执行操作 [关闭]【英文标题】:How to make a bot with PHP to log in and do stuff on a website [closed] 【发布时间】:2014-06-04 14:01:26 【问题描述】:

我想做的是制作一个机器人,它会使用我的帐户登录到网站并自动执行一些工作(当然是合法的工作)。

例如,论坛中可能有一个帖子,其中数千个 cmets 被分成数百个页面。该帖子只能由注册用户查看。我希望在那里找到特定用户的 cmets,并且我希望 php 机器人使用我的帐户登录,逐一阅读每个评论页面并提取该特定用户的 cmets 并将它们显示给我。

这当然只是一个例子。我可以进行提取和解析,但我似乎无法真正让机器人登录并继续前进。我只是PHP的初学者,我尝试了以下方法:

    使用我自己的表单将帖子数据传递到网站的登录页面,但没有成功,因为它一直说无效的referer。

    我手动登录,然后在新选项卡中打开我的脚本,但它也不起作用,它要求机器人再次登录。

那么你能告诉我如何做到这一点吗?基本上它需要进入登录页面,以某种方式输入用户名和密码,登录,进入特定页面,然后做一些事情。

顺便问一下,这也可以用 javascript 来完成吗?

谢谢。

【问题讨论】:

如果您使用 javascript,那么您将收到跨域错误。所以我认为js不会有太大帮助。 【参考方案1】:

您需要 php_curl 进行身份验证,然后一旦获得会话,您就可以进行提取。像这样的:

$host = curl_init($url);
curl_setopt($host, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
curl_setopt($host, CURLOPT_HEADER, 1);
curl_setopt($host, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($host, CURLOPT_TIMEOUT, 30);
curl_setopt($host, CURLOPT_POST, 1);
curl_setopt($host, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($host, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($host);
curl_close($host);

【讨论】:

非常感谢。虽然我不知道如何使用 curl,但我可以开始学习。感谢您的指导:)

以上是关于如何使用 PHP 制作机器人以登录并在网站上执行操作 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ajax - 执行 php 脚本和数据验证时出错 - 如何解决?

如何在会员网站上使用贝宝 IPN (PHP)

PHP制作登录页面,登录后如何显示昵称?

安全的PHP登录系统?

如何在php中制作活动导航栏?

大数据实操3 - hadoop集群添加新节点