Javascript 自动登录到wrbsite并提取元素
我想要一个html页面,该页面可以自动登录到一个站点,然后导航到该站点的另一个页面,获取一些元素,并使用java脚本将它们显示在我的html页面上。该站点基于MOODLE-API。是否有任何方法可以做到这一点 我曾经尝试过使用这个php脚本,但是没有用,因为moodle api使用cookies登录,用户关闭浏览器后,cookies就会消失。 该网站是Javascript 自动登录到wrbsite并提取元素,javascript,html,moodle,Javascript,Html,Moodle,我想要一个html页面,该页面可以自动登录到一个站点,然后导航到该站点的另一个页面,获取一些元素,并使用java脚本将它们显示在我的html页面上。该站点基于MOODLE-API。是否有任何方法可以做到这一点 我曾经尝试过使用这个php脚本,但是没有用,因为moodle api使用cookies登录,用户关闭浏览器后,cookies就会消失。 该网站是 好吧,您的代码无法工作,因为CURLOPT_-COOKIEFILE和CURLOPT_-COOKIEJAR都需要文件的绝对路径。最简单的方法是使用
好吧,您的代码无法工作,因为
CURLOPT_-COOKIEFILE
和CURLOPT_-COOKIEJAR
都需要文件的绝对路径。最简单的方法是使用realpath('cookie.txt')
如果网站确实有cookie,并且这些cookie在退出时被删除,只需创建一个全局的
$ch=curl_init()
object,并通过编写global$ch在方法中使用它
在一个方法的最开始,不在任何方法中调用curl\u init()
或curl\u close()
。欢迎使用堆栈溢出。请尝试并发布您尝试过的内容,以便我们能够帮助您。好吧,请查看XMLHttpRequest(),然后使用它们。但是我认为使用像PHP这样的东西会使它变得更容易一些。
<?php
//Upload a blank cookie.txt to the same directory as this file with a CHMOD/Permission to 777
function login($url,$data){
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_TIMEOUT, 40000);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec ($login);
ob_end_clean();
curl_close ($login);
unset($login);
}
function grab_page($site){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_TIMEOUT, 40);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start();
return curl_exec ($ch);
ob_end_clean();
curl_close ($ch);
}
function post_data($site,$data){
$datapost = curl_init();
$headers = array("Expect:");
curl_setopt($datapost, CURLOPT_URL, $site);
curl_setopt($datapost, CURLOPT_TIMEOUT, 40000);
curl_setopt($datapost, CURLOPT_HEADER, TRUE);
curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
curl_setopt($datapost, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($datapost, CURLOPT_POST, TRUE);
curl_setopt($datapost, CURLOPT_POSTFIELDS, $data);
curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
ob_start();
return curl_exec ($datapost);
ob_end_clean();
curl_close ($datapost);
unset($datapost);
}
?>