goutte를 사용하여 PHP 스크립트를 만들려고합니다.
이 앱 ( 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를 사용하여 제출 버튼을 클릭 한 후 파일을 로컬로 저장하는 방법입니다.
해결책:
$ form = $ exportPage-> selectButton ( 'ctl00 $ MainContent $ btnDownload')-> form ();
$ client-> submit ($ form);
print_r ($ client-> getResponse ()-> getContent ());
getContent ()는 파일의 모든 내용을 제공했고 해당 내용을 로컬 컴퓨터에서 이미 만든 다른 파일에 저장했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다