2017-08-30 55 views
0

我試圖創建一個使用GOUTTE一個PHP腳本如何在本地從asp.net形式使用GOUTTE

  • 登錄
  • 點擊提交按鈕保存下載文件。
  • 將本地csv文件保存下載(如果手動完成)。

這個應用程序(http://portal.agrinet.ie/)是建立在asp.net

我能夠成功登錄,並通過代碼點擊提交按鈕太多的形式,但它目前只返回這個結果:

Symfony\Component\DomCrawler\Crawler Object 
 
(
 
    [uri:protected] => http://portal.agrinet.ie/Exports.aspx 
 
    [defaultNamespacePrefix:Symfony\Component\DomCrawler\Crawler:private] => default 
 
    [namespaces:Symfony\Component\DomCrawler\Crawler:private] => Array 
 
     (
 
     ) 
 

 
    [baseHref:Symfony\Component\DomCrawler\Crawler:private] => http://portal.agrinet.ie/Exports.aspx 
 
    [document:Symfony\Component\DomCrawler\Crawler:private] => 
 
    [nodes:Symfony\Component\DomCrawler\Crawler:private] => Array 
 
     (
 
     ) 
 

 
    [isHtml:Symfony\Component\DomCrawler\Crawler:private] => 1 
 
)

這是PHP代碼:

require 'vendor/autoload.php'; 
 
use Goutte\Client; 
 

 
$client = new Client(); 
 
echo '<pre>'; 
 
$crawler = $client->request('GET', 'http://portal.agrinet.ie/Default.aspx'); 
 
$form = $crawler->selectButton('ctl00$MainContent$btnLogin')->form(); 
 

 
$crawler = $client->submit($form, array('ctl00$MainContent$txtUsername' => 'XXXX', 'ctl00$MainContent$txtPassword' => 'XXXXX')); 
 
    
 
$id = $crawler->filter("#ctl00_mnuMainn26 a")->link(); 
 
$exportPage = $client->click($id); 
 
$downloadBut = $exportPage->selectButton('ctl00$MainContent$btnDownload')->form(); 
 
$file = $client->submit($downloadBut); 
 
print_r($file);

我的問題是如何,我可以用點擊的GOUTTE提交按鈕後,在本地保存的文件。

回答

0

解決方案:

$形成= $ exportPage-> selectButton( 'ctl00 $ $搜索Maincontent btnDownload') - >形式();

$ client-> submit($ form);

print_r($ client-> getResponse() - > getContent());

getContent()爲我提供了該文件的所有內容,並將該內容保存在我已經在本地機器上創建的另一個文件中。