2011-08-11 77 views
-2

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

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

+1

你有没有尝试过甚至第一次刺穿它,或者你想完整的代码? – random

+1

你会使用'curl'。 – zzzzBov

+0

我不知道你想问什么。 – Nemanja

回答

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邮件之前尝试“抓取”网站。