以编程方式访问密码保护的网站

时间:2011-08-11 14:24:01

标签: php login

网站上使用的登录表单是/login.php?action=process,它使用POST。我将如何开始写一些东西,最好是使用我的用户名和密码登录的php。然后我将继续抓取并获取我需要的信息。

这是为了监控/更新供应商电子商务商店的信息,以便我的库存和价格在我的网站上保持最新。

1 个答案:

答案 0 :(得分:1)

$loginUrl = 'http://www.remote_site.com/login.php?action=process';
$loginFields = array('username' => 'username', 'password' => 'password');

getUrl($loginUrl, 'post', $loginFields); 
//now you're logged in and a session cookie was generated

$remote_page_content = getUrl('http://www.remote_site.com/some_page.php');


  function getUrl($url, $method='', $vars='') {
    $ch = curl_init();
    if ($method == 'post') {
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
    $buffer = curl_exec($ch);
    curl_close($ch);
    return $buffer;
  }

从登录页面,我假设商店系统是(某种)xt:commerce。它具有将产品信息导出为CSV的功能,因此,正如vaidas在评论中所说,您应该尝试通过电子邮件发送该CSV,然后再尝试“抓取”该网站。