2013-10-03 20 views
29

używam PhantomJS do wykonywania połączeń na stronie internetowej, tak:PhantomJS: Określ User Agent przy nawiązywaniu połączenia

page.open('http://example.com', function (s) { 
    console.log(page.content); 
    phantom.exit(); 
}); 

używam tego w kontekście Drupal Simpletests, które wymagają mnie ustawić specjalny UŻYTKOWNIK, aby użyć testowej bazy danych zamiast prawdziwej bazy danych. Chciałbym pobrać stronę konkretnego agenta użytkownika. Na przykład, w PHP z Curl, mogę to zrobić z CURLOPT_USERAGENT przed wykonaniem wywołania cUrl.

Dzięki!

Albert

Odpowiedz

49

Znalazłem odpowiedź w pliku useragent.js w phantomjs examples directory:

var page = require('webpage').create(); 
console.log('The default user agent is ' + page.settings.userAgent); 
page.settings.userAgent = 'SpecialAgent'; 
page.open('http://www.httpuseragent.org', function (status) { 
    if (status !== 'success') { 
     console.log('Unable to access network'); 
    } else { 
     var ua = page.evaluate(function() { 
      return document.getElementById('myagent').innerText; 
     }); 
     console.log(ua); 
    } 
    phantom.exit(); 
}); 
+0

Dostaję Brak dostępu do sieci. Mogę uzyskać dostęp do witryny za pośrednictwem moich innych przeglądarek. Jest to strona wewnętrznie dostępna. Czy jest kilka ustawień, które muszę skonfigurować, aby uzyskać dostęp z Phantom. – DoodleKana

Powiązane problemy