Goutte не загрузит страницу ASP SSL

Я пытаюсь Goutte , веб-искатель PHP, основанный на компонентах Symfony2. Я успешно получил Google в форматах открытого текста и SSL. Однако я столкнулся с страницей ASP / SSL, которая не будет загружаться.

Вот мой код:

// Load a crawler/browser system require_once 'vendor/goutte/goutte.phar'; // Here's a demo of a page we want to parse $uri = '(removed)'; use Goutte\Client; $client = new Client(); $crawler = $client->request('GET', $uri); echo $crawler->text() . "\n"; 

Вместо этого эхо в конце вышеприведенного кода для этого одного сайта дает мне следующее:

Неверный запрос (неверное название заголовка)

Я прекрасно вижу сайт в Firefox, а HTML для него можно получить с помощью wget --no-check-certificate без каких-либо других параметров (например, для настройки заголовка или пользовательского агента).

Я подозреваю, что мне нужно установить некоторые HTTP-заголовки в Goutte. Есть ли у кого-нибудь идеи какие из них я должен попробовать?

Я обнаружил, что мой браузер и wget добавляют в поле не пустое поле агента пользователя, поэтому я предполагаю, что Goutte ничего не устанавливает. Добавление этого заголовка в объект браузера до извлечения исправляет проблему:

 // Load a crawler/browser system require_once 'vendor/goutte/goutte.phar'; // Here's a demo of a page we want to parse $uri = '(removed)'; use Goutte\Client; // Set up headers $client = new Client(); $headers = array( 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:21.0) Gecko/20100101 Firefox/21.0', ); foreach ($headers as $header => $value) { $client->setHeader($header, $value); } $crawler = $client->request('GET', $uri); echo $crawler->text() . "\n"; 

Здесь я скопировал в строке агента браузера, но в этом случае я думаю, что все будет работать – пока оно установлено.

Кстати, я использовал браузер UA здесь, поскольку я пытался точно реплицировать среду браузера для отладки этой конкретной проблемы. Как только это сработало, я переключился на пользовательский UA, поэтому целевые сайты могут обнаружить его как бота, если они захотят (для этого проекта я не думаю, что у кого-то есть).

У меня тоже были проблемы.

Недостаточно добавить заголовок User-Agent . Я добавил HTTP_USER_AGENT с setServerParameter функции setServerParameter и он работал как шарм.

Вот полный код:

 // Load a crawler/browser system require_once 'vendor/goutte/goutte.phar'; // Here's a demo of a page we want to parse $uri = '(removed)'; $ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:21.0) Gecko/20100101 Firefox/21.0'; use Goutte\Client; // Set up headers $client = new Client(); $client->setHeader('User-Agent', $ua); $client->setServerParameter('HTTP_USER_AGENT', $ua); $crawler = $client->request('GET', $uri); echo $crawler->text() . "\n";